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
           
  • 相关阅读:
    五种Sublime text 3同时快速编辑多行内容
    update 更新某个字段自动加1
    oracle 一行记录被锁
    事件
    练习题1
    语法
    开始js
    js简述
    概述
    软连接
  • 原文地址:https://www.cnblogs.com/ddcckkk/p/6800843.html
Copyright © 2011-2022 走看看