思路不清

来源:互联网 发布:汽车销售行业分析数据 编辑:程序博客网 时间:2024/06/10 06:20
思路太乱了,总是纠结于固有的方法,想用一种固定的套路得出想要的结果,还是得多变通多总结。
直接上码
旋转排列数组查找:
public int search(int[] nums, int target) {
       int lo=0,hi=nums.length-1;
       // find the index of the smallest value usingbinary search.
       // Loop will terminate since mid < hi, and loor hi will shrink by at least 1.
       // Proof by contradiction that mid < hi: ifmid==hi, then lo==hi and loop would have been terminated.
       while(lo
           intmid=(lo+hi)/2;
          if(nums[mid]>nums[hi]) lo=mid+1;
           elsehi=mid;
       }
       // lo==hi is the index of the smallest value andalso the number of places rotated.
       int rot=lo;
       lo=0;hi=nums.length-1;
       // The usual binary search and accounting forrotation.
       while(lo<=hi){
           intmid=(lo+hi)/2;
           intrealmid=(mid+rot)%nums.length;
          if(nums[realmid]==target)return realmid;
          if(nums[realmid]
           elsehi=mid-1;
       }
       return -1;
    }
形式变化和得善于从已知推未知。
同时注意栈插入的数据有很大的信息量,很大的信息量,很大的信息量不要漏用!
0 0