zoukankan      html  css  js  c++  java
  • [leetcode]Search in Rotated Sorted Array

    简单题吧。用递归解决了。中间有个A[start] <= A[mid]的等号一开始没加。想来因为采用 / 2,mid可能会偏向start一方并mid==start的。

    public class Solution {
        public int search(int[] A, int target) {
            // Start typing your Java solution below
            // DO NOT write main() function
            return search(A, target, 0, A.length - 1);
        }
        
        public int search(int[] A, int target, int start, int end) {
        	if (start > end) return -1;
        	int mid = (start + end) / 2;
        	if (A[mid] == target) return mid;
        	
        	if (A[start] <= A[mid]) { // left part sorted
        		if (target >= A[start] && target < A[mid]) {
        			return search(A, target, start, mid-1);
        		}
        		else if (target > A[mid] || target <= A[end]) {
        			return search(A, target, mid+1, end);
        		}
        	}
        	else // left left part unsorted
        	{
        		if (target >= A[start] || target < A[mid]) {
        			return search(A, target, start, mid-1);
        		}
        		else if (target > A[mid] && target <= A[end]) {
        			return search(A, target, mid+1, end);
        		}
        	}
        	return -1;
        }
    }
    

      

  • 相关阅读:
    以“处理器”为中心的时代过去了
    新宿事件里的一句话
    2
    了解企业要招的,再去学相应的东西
    maxim
    ORA00980 无效同名
    Oracle 字符集的查看和修改
    Linux挂载磁盘
    ORA28002: 7 天之后口令将过期
    ORAdump函数
  • 原文地址:https://www.cnblogs.com/lautsie/p/3235734.html
Copyright © 2011-2022 走看看