老汉技术专栏

Java开发程序猿一枚~欢迎各位批评指正

LintCode 63. 搜索旋转排序数组 II

跟进“搜索旋转排序数组”,假如有重复元素又将如何?

是否会影响运行时间复杂度?

如何影响?

为何会影响?

写出一个函数判断给定的目标值是否出现在数组中。

public class Solution {
   /**
    * @param A: an integer ratated sorted array and duplicates are allowed
    * @param target: An integer
    * @return: a boolean 
    */
   public boolean search(int[] A, int target) {
      // write your code here
      if (A == null || A.length == 0) {
         return false;
      }
      return search(A, 0, A.length - 1, target);
   }

   private boolean search(int[] array, int start, int end, int target) {
      if (start == end) {
         if (array[start] == target) {
            return true;
         } else {
            return false;
         }
      }
      int middle = (start + end) / 2;
      boolean left = search(array, start, middle, target);
      boolean right = search(array, middle + 1, end, target);
      if (left == true) {
         return left;
      } else if (right == true) {
         return right;
      } else {
         return false;
      }
   }
}

阅读更多
文章标签: java lintcode
个人分类: java开发
上一篇LintCode 62. 搜索旋转排序数组
下一篇LintCode 66. 二叉树的前序遍历
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭