zoukankan      html  css  js  c++  java
  • LeetCode-Search in Rotated Sorted Array II

    Analysis:

    For target>A[mid]:

    There is only one case that we should seach [start,mid-1]: Peak is in the left, i.e., A[start]>A[mid] && target>=A[start].

    For target<A[mid]:

    There is only one case that we should search [mid+1,end]: Peak is in the right, i.e., A[end]<A[mid] && target<=A[end].

    Solution:

     1 public class Solution {
     2     public boolean search(int[] A, int target) {
     3         return searchRecur(A,target,0,A.length-1);
     4     }
     5     
     6     public boolean searchRecur(int[] A, int target, int start, int end){
     7         if (start>end) return false;
     8         
     9         int mid = (start+end)/2;
    10         if (A[mid]==target) return true;
    11         
    12         if (A[start]==A[mid] && A[end]==A[mid])
    13             return ( searchRecur(A,target,start,mid-1) || searchRecur(A,target,mid+1,end) );
    14         
    15         if (target>A[mid])
    16             if (A[start]>A[mid] && target>=A[start]) 
    17                 return searchRecur(A,target,start,mid-1);
    18             else return searchRecur(A,target,mid+1,end);
    19         else 
    20             if (A[end]<A[mid] && target<=A[end])
    21                 return searchRecur(A,target,mid+1,end);
    22             else return searchRecur(A,target,start,mid-1);
    23         
    24     }
    25         
    26         
    27 }
  • 相关阅读:
    logging模板日志格式
    MariaDB修改默认字符集
    Django之表单验证
    Django之定制属于自己的admin
    sympy-高数可以这么学
    matplotlib01
    mysql---- 用户权限管理
    django----JSONP知识回顾
    django----文件上传
    数据库结构备份
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4235147.html
Copyright © 2011-2022 走看看