zoukankan      html  css  js  c++  java
  • 81. Search in Rotated Sorted Array II

    package LeetCode_81
    
    /**
     * 81. Search in Rotated Sorted Array II
     * https://leetcode.com/problems/search-in-rotated-sorted-array-ii/description/
     *
     * Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
    (i.e., [0,0,1,2,2,5,6] might become [2,5,6,0,0,1,2]).
    You are given a target value to search. If found in the array return true, otherwise return false.
    
    Example 1:
    Input: nums = [2,5,6,0,0,1,2], target = 0
    Output: true
    
    Example 2:
    Input: nums = [2,5,6,0,0,1,2], target = 3
    Output: false
    
    [1,3,1,1,1]
    3
    true
    
    Follow up:
    This is a follow up problem to Search in Rotated Sorted Array, where nums may contain duplicates.
    Would this affect the run-time complexity? How and why?
     * */
    class Solution {
        fun search(nums: IntArray, target: Int): Boolean {
            var left = 0
            var right = nums.size - 1
            while (left <= right) {
                val mid = (left + right) / 2
                if (nums[mid] == target) {
                    return true
                }
                //if num[left..mid] first subarray is sorted
                if (nums[left] < nums[mid]) {
                    if (nums[left] <= target && target <= nums[mid]) {
                        right = mid - 1
                    } else {
                        left = mid + 1
                    }
                } else if (nums[left] > nums[mid]) {
                    if (nums[mid] <= target && target <= nums[right]) {
                        left = mid + 1
                    } else {
                        right = mid - 1
                    }
                } else {
                    left++//we checking the left below
                }
            }
            return false
        }
    }
  • 相关阅读:
    Orcle 导入数据eurusd.ctl
    Maven系列2pom.xml 配置详解
    UML关联&泛化的区别
    maven 创建工程
    maven 打包
    jprofiler安装和配置
    设计模式出现之前的几大原则
    检查启动情况linux
    领域模型
    解压命令tar
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/12884719.html
Copyright © 2011-2022 走看看