数组旋转
来源:互联网 发布:sopcast网络电视节目源 编辑:程序博客网 时间:2024/05/18 01:48
问题:返回将一维数组向右旋转k个位置的结果。比如,一维数组{1,2,3,4,5},k=2时,返回结果为{4,5,1,2,3}。要求常量级空间复杂度,允许修改原数组。
OC算法实现:
/** 4 */#import <Foundation/Foundation.h>@interface RotateK : NSObject- (NSMutableArray *)rotateK:(NSMutableArray *)dataArr k:(int)k;@end
#import "RotateK.h"@implementation RotateK- (NSMutableArray *)rotateK:(NSMutableArray *)dataArr k:(int)k{ if (dataArr == nil || dataArr.count == 0 || k>dataArr.count) { return dataArr; } /** 1、翻转整个数组 2、翻转前k个 3、翻转剩余个 */ [self reverse:dataArr start:0 end:(int)dataArr.count-1]; [self reverse:dataArr start:0 end:k-1]; [self reverse:dataArr start:k end:(int)dataArr.count-1]; return dataArr;}- (NSMutableArray *)reverse:(NSMutableArray *)arr start:(int)start end:(int)end{ while (start < end) { NSNumber *temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } return arr;}@end
0 0
- 数组旋转
- 旋转数组
- 旋转数组
- 旋转数组
- 旋转数组
- 数组旋转
- 旋转数组
- 数组旋转
- 旋转数组
- 旋转数组
- 旋转数组
- 数组旋转
- 旋转数组
- 数组旋转
- 旋转数组
- 数组旋转
- 旋转数组
- 旋转数组
- 结构体数组作为传出参数从C++封送到C#
- Java学习总结第五天Java控制结构
- Android学习笔记之屏幕宽高、状态栏宽高、标题宽高以及left()、top()、right()、bottom()
- 多措并举保障受灾群众基本生活
- Codeforces Round #373 (Div. 2)
- 数组旋转
- Asteroids POJ3041 二分图最小顶点覆盖
- spring-guide之spring-jdbc
- 浅谈微信公众号营销背后的技术
- Leetcode 48. Rotate Image (Medium) (java)
- 习题2--注释和#符号
- 北大机试最小生成树
- 最大下标距离
- <理解共享信道访问协议系列1>共享信道前世今生