zoukankan      html  css  js  c++  java
  • 【leetcode刷题笔记】Search in Rotated Sorted Array II

    Follow up for "Search in Rotated Sorted Array":
    What if duplicates are allowed?

    Would this affect the run-time complexity? How and why?

    Write a function to determine if a given target is in the array.


    题解:如果没有重复的元素,那么就可以根据target是否在某一半而扔掉另外一半。但是如果有重复的元素,就有可能不知道往哪边跳转:

    例如A = {1,3,3,3,3,3},经过变换后得到数组{3,1,3,3,3,3},此时A[mid] = 3 = A[left] = A[right],如果target = 1,两边都不能扔,所以不能用二分的方法。

    直接用遍历O(n)的方法也可以AC:

     1 public class Solution {
     2     public boolean search(int[] A, int target) {
     3         if(A == null || A.length == 0)
     4             return false;
     5         for(int i = 0;i < A.length;i++)
     6             if(target == A[i])
     7                 return true;
     8         return false;
     9     }
    10 }
  • 相关阅读:
    leetcode 39 Combination Sum
    C/C++ 单元测试 catch
    二叉树
    线性表
    POJ1002
    HDU4329
    hdu 4329
    java代码优化总结1
    Linux操作系统常用命令总结1
    java开发基础知识总结1
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3857995.html
Copyright © 2011-2022 走看看