恢复旋转排序数组
2016-11-24 10:07
176 查看
给定一个旋转排序数组,在原地恢复其排序。
什么是旋转数组?
比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]
样例
public class Solution {
/**
* @param nums: The rotated sorted array
* @return: void
*/
public void recoverRotatedSortedArray(ArrayList<Integer> nums) {
// write your code
int temp = nums.get(0);
int i;
for( i = 0;i<nums.size();i++){
if(nums.get(i)<temp)//找到最小的数
break;
}
if(i!=nums.size()){
for(int j=0 ; j<i;j++)
nums.add(nums.get(j));将前面的翻转数据加入到后面
nums.subList(0, i).clear();//相当于执行 removeRange(int fromIndex, int toIndex)功能。但这个函数是protected状态
只供ArrayList的子类调用
}
}
}
什么是旋转数组?
比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]
样例
[4, 5, 1, 2, 3]->
[1, 2, 3, 4, 5]
public class Solution {
/**
* @param nums: The rotated sorted array
* @return: void
*/
public void recoverRotatedSortedArray(ArrayList<Integer> nums) {
// write your code
int temp = nums.get(0);
int i;
for( i = 0;i<nums.size();i++){
if(nums.get(i)<temp)//找到最小的数
break;
}
if(i!=nums.size()){
for(int j=0 ; j<i;j++)
nums.add(nums.get(j));将前面的翻转数据加入到后面
nums.subList(0, i).clear();//相当于执行 removeRange(int fromIndex, int toIndex)功能。但这个函数是protected状态
只供ArrayList的子类调用
}
}
}
相关文章推荐
- Lintcode 39. 恢复旋转排序数组
- 恢复旋转排序数组
- 39. 恢复旋转排序数组
- 【LintCode】Recover Rotated Sorted Array 恢复旋转排序数组
- 恢复旋转排序数组
- 39. 恢复旋转排序数组-LintCode
- 39. 恢复旋转排序数组
- 恢复旋转排序数组
- 题目:恢复旋转排序数组
- 39 - 恢复旋转排序数组
- 恢复旋转排序数组
- 恢复旋转排序数组
- 恢复旋转排序数组&&旋转字符串
- LintCode 39 恢复旋转排序数组
- LintCode之39 恢复旋转排序数组
- Lintcode:恢复旋转排序数组
- 恢复旋转排序数组
- LintCode-39. 恢复旋转排序数组
- [LintCode]39.恢复旋转排序数组
- lintcode-39-恢复旋转排序数组