Recover Rotated Sorted Array
public void recoverRotatedSortedArray(List<Integer> nums) {
int pos = -1;
for(int i = 0; i < nums.size()-1; i++){
if(nums.get(i) > nums.get(i+1)){
pos = i;
break;
}
}
reverse(nums, 0, pos);
reverse(nums, pos+1, nums.size()-1);
reverse(nums, 0, nums.size()-1);
}
public void reverse(List<Integer> nums, int start, int end){
while(start < end){
int temp = nums.get(start);
nums.set(start++, nums.get(end));// arraylist set用法
nums.set(end--, temp);
}
}Last updated