zoukankan      html  css  js  c++  java
  • 旋转排序数组

     

    http://www.lintcode.com/zh-cn/problem/recover-rotated-sorted-array/

    错误点:注意花括号,别少些~~~

    注意点:

    找 

    [1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 中的分界点,不能用二分法。只能依次遍历。 (类似于黑箱,不打开的那个永远是最小的,所以只有全打开才能找到最小的)
    时间复杂度主要在reverse里,O(n),所以用二分法也不会简化时间复杂度。

    两种方式,start和end的数据用不用i,j存都可以;
     1  private void reverse(ArrayList<Integer> nums, int start , int end) {
     2         for(int i = start, j = end; i < j; i++,j--) {
     3             int temp = nums.get(i);
     4             nums.set(i,nums.get(j));
     5             nums.set(j,temp);    
     6         }
     7     }*/
     8     
     9    private void reverse(ArrayList<Integer> nums, int start, int end) {
    10        while(start<end) {
    11             int temp = nums.get(start);
    12             nums.set(start, nums.get(end));
    13             nums.set(end, temp);
    14             start++;
    15             end--;
    16         }
    17         return;
    18     }
    View Code
           
  • 相关阅读:
    DP 水题 最长不下降子序列
    数的划分
    水题------纪念品分组
    NY95 众数问题
    NY86 找球号(一)
    C3-Zexal的矩阵链乘
    C3-Zexal的多路流水线调度
    C4-Zexal的食物链
    C4-排列
    C3-炮弹杀伤力
  • 原文地址:https://www.cnblogs.com/ddcckkk/p/6800843.html
Copyright © 2011-2022 走看看