美文网首页
39.Recover Rotated Sorted Array

39.Recover Rotated Sorted Array

作者: 博瑜 | 来源:发表于2017-07-12 21:58 被阅读0次
 public class Solution {
/**
 * @param nums: The rotated sorted array
 * @return: void
 */
public void recoverRotatedSortedArray(ArrayList<Integer> nums) {
    // write your code
    int length = nums.size();
    int index = 0;
    while (index < length - 1) {
        if (nums.get(index) > nums.get(index + 1)) break;
        index++;
    }
    if (index == length - 1) return;
    reverse(nums, 0, index);
    reverse(nums, index + 1, length - 1);
    reverse(nums, 0, length - 1);
}
private void swap(ArrayList<Integer> nums, int start, int end) {
    int a = nums.get(start);
    nums.set(start, nums.get(end));
    nums.set(end, a);
}
private void reverse(ArrayList<Integer> nums, int start, int end) {
    while(start < end) {
        swap(nums, start, end);
        start++;
        end--;
    }
}
 }

相关文章

网友评论

      本文标题:39.Recover Rotated Sorted Array

      本文链接:https://www.haomeiwen.com/subject/avdihxtx.html