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
        }
    }
  • 相关阅读:
    依赖注入(DI)和Ninject
    Dapper.NET——轻量ORM
    优化SQL查询:如何写出高性能SQL语句
    Razor语法
    sublime Text 3 官方版 3114 注册码
    数据库索引,存储过程,视图,事务
    Action向视图传值的6种方式
    C#知识点提要
    算法总结
    c++ 构造函数,拷贝构造函数,析构函数与赋值操作符
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/12884719.html
Copyright © 2011-2022 走看看