lintcode 39. Recover Rotated Sorted Array (思想非常好!!!)

image.png

用三段翻转法!!!
如[4,5,1,2,3],首先[5,4],然后[3,2,1],最后[1,2,3,4,5]

class Solution {
public:
    /**
     * @param nums: An integer array
     * @return: nothing
     */
    void recoverRotatedSortedArray(vector<int> &nums) {
        // write your code here
        int index = 0;
        int cur = 0;
        for(int i = 1; i < nums.size(); i++){
            if(nums[i] < nums[i-1]){
                index = i;
            }
        }
        int left;
        int right;
        left = 0, right = index - 1;
        while(right >= left){
            int tmp = nums[left];
            nums[left++] = nums[right];
            nums[right--] = tmp;
            
        }
        left = index, right = nums.size() - 1;
        while(right >= left){
            int tmp = nums[left];
            nums[left++] = nums[right];
            nums[right--] = tmp;
        }
        left = 0, right = nums.size() - 1;
        while(right >= left){
            int tmp = nums[left];
            nums[left++] = nums[right];
            nums[right--] = tmp;
        }
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:选D,7+9=16;9+(-1)=8;(...
    Alex_bingo阅读 19,319评论 1 19
  • 在网上看了太多的鸡汤,各式各样的,或温和或激烈,内容和结局都只是想让你明白,生活是自已的,把握你能把握的,努力你能...
    小蓝胖子阅读 234评论 0 2
  • 你就是那捧茶 素色凝香 我就是那杯水 静默滚烫 相遇的刹那 我嗅见你幽幽的芬芳 如梦的轻雾 袅袅升腾 渐渐迷离我 ...
    灵山阅读 202评论 0 1
  • 古有言:达则兼济天下,穷则独善其身。想要兼济天下是需要一定的物资财力的,而完善自己,却在我们每一个人的能力范围之内...
    乔巧一汀阅读 635评论 0 2
  • 爸爸指着她对我说,这是我们家族最小的一个姐姐,是二伯父的小女儿。因为不会说话,嘴里只会发出"咿咿吖吖"的声音...
    小花米麻麻阅读 603评论 6 4