rotate array 旋转数组
2015-07-16 10:44
423 查看
class Solution {
public:
void rotate(vector<int>& nums, int k) {
int n=nums.size();
int i=0;
//-------------------
//解法一 会超时
//--------------------
k=k%n;
while(i<k){
int temp=nums[n-1];
for(int j=n-1;j>0;j--){
nums[j]=nums[j-1];
}
nums[0]=temp;
i++;
}
//-------------------
//解法二
//--------------------
vector<int> num1; 新开一个数组,存放
k=k%n;
if(k==0) return;
while(i<k)
{
num1.push_back(nums[n-k+i]);
i++;
}
i=0;
while(i<n-k)
{
num1.push_back(nums[i]);
i++;
}
i=0;
while(i<n)
{
nums[i]=num1[i];
i++;
}
}
//-------------------
//解法三 三次旋转;很巧妙
//--------------------
};
public:
void rotate(vector<int>& nums, int k) {
int n=nums.size();
int i=0;
//-------------------
//解法一 会超时
//--------------------
k=k%n;
while(i<k){
int temp=nums[n-1];
for(int j=n-1;j>0;j--){
nums[j]=nums[j-1];
}
nums[0]=temp;
i++;
}
//-------------------
//解法二
//--------------------
vector<int> num1; 新开一个数组,存放
k=k%n;
if(k==0) return;
while(i<k)
{
num1.push_back(nums[n-k+i]);
i++;
}
i=0;
while(i<n-k)
{
num1.push_back(nums[i]);
i++;
}
i=0;
while(i<n)
{
nums[i]=num1[i];
i++;
}
}
//-------------------
//解法三 三次旋转;很巧妙
//--------------------
};
相关文章推荐
- 下拉列表联动总结(AJAX下拉列表联动简单示例)
- su: warning: cannot change directory to /home/mongodb: Permission denied
- 初识Javascript小结
- GRE写作必备句型
- makeKeyAndVisible
- spring 集成memcached的详细介绍
- php中同时包含OR运算与AND运算
- 单例模式getInstance()
- Could not open workspace file project.xcworkspace/contents.xcworkspacedata
- spring aop简单日志实例
- Codeforces Round #312 (Div. 2)B. Amr and The Large Array 暴力
- IP地址-子网掩码-默认网关
- eclipse+selenium+testNG+maven 学习一
- VS源码文件导入Android工程 中文乱码
- 将字符串写入文件
- Java中的运算符
- 压缩与解压的相关命令
- linux下OpenFire配置安装与配置
- linux设备驱动makefile入门解析
- AdapterView与Adapter(五) --AsyncQueryHandler