leetcode 二分查找 Search in Rotated Sorted ArrayII
Search in Rotated Sorted Array II
Total Accepted: 18500 Total
Submissions: 59945My Submissions
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,在该旋转后的数组里查找该值。(数组中的元素可能反复)
思路:二分查找
难点在于确定往数组的哪一半段继续二分查找
设起点、中间点、终点分别为 start、middle、end (採用前闭后开的区间表示方法
假设target = A[middle] return middle
假设A[middle] > A[start],则[start,middle)单调递增
1.假设target < A[middle] && target >= A[start],则 end = middle
2.start = middle + 1, otherwise
假设A[middle] < A[start],则[middle,end)单调递增
1.假设target > A[middle] && target <= A[end - 1],则 start = middle + 1
2.end = middle, otherwise
假设A[middle] == A[start]。那A[start]也不会是target,能够通过start++; 去掉A[start]
复杂度:时间O(n),空间O(1)
- int search(int A[], int n, int target){
- int start = 0, end = n, middle ;
- while(start < end){
- middle = (start + end) / 2;
- if(A[middle] == target) return middle;
- if(A[middle] > A[start]){
- if(target >= A[start] && target < A[middle]){
- end = middle;
- }else{
- start = middle + 1;
- }
- }else if(A[middle] < A[start]){
- if(target > A[middle] && target <= A[end - 1]){
- start = middle + 1;
- }else{
- end = middle;
- }
- }
- else{
- ++start;
- }
- }
- return -1;
- }
leetcode 二分查找 Search in Rotated Sorted ArrayII的更多相关文章
- leetcode 二分查找 Search in Rotated Sorted Array
Search in Rotated Sorted Array Total Accepted: 28132 Total Submissions: 98526My Submissions Suppose ...
- Search in Sorted Array,Search in Rotated Sorted Array,Search in Rotated Sorted ArrayII
一:Search in Sorted Array 二分查找,可有重复元素,返回target所在的位置,只需返回其中一个位置,代码中的查找范围为[low,high),左闭右开,否则容易照成死循环. 代码 ...
- 【一天一道LeetCode】#81. Search in Rotated Sorted Array II
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Follow ...
- leetcode 题解:Search in Rotated Sorted Array II (旋转已排序数组查找2)
题目: Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed? Would t ...
- LeetCode OJ:Search in Rotated Sorted Array II(翻转排序数组的查找)
Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed? Would this ...
- leetcode解题报告(4):Search in Rotated Sorted ArrayII
描述 Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...
- [Leetcode][Python]33: Search in Rotated Sorted Array
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 33: Search in Rotated Sorted Arrayhttps ...
- LeetCode题解33.Search in Rotated Sorted Array
33. Search in Rotated Sorted Array Suppose an array sorted in ascending order is rotated at some piv ...
- LeetCode解题报告—— Search in Rotated Sorted Array & Search for a Range & Valid Sudoku
1. Search in Rotated Sorted Array Suppose an array sorted in ascending order is rotated(轮流,循环) at so ...
随机推荐
- 第1天:Django框架简介与工程创建
Django简介 Django特点 环境搭建 创建工程 启动服务 使用pycharm打开工程 创建子应用 Django简介 Django,是用Python语言写的开源web开发框架,并遵循MVC设计. ...
- php异步实现,避免长时间等待
处理的php异步的方法有好几种,这里我就只介绍我经常用的而且官方也推荐的 废话少说,直接贴代码 //php异步 public function doRequest($host,$path, $para ...
- luoguP4783 [模板]矩阵求逆 线性代数
求\(n^2\)的矩阵的逆 翻了翻题解,看到了初等矩阵这个东西,突然想起来在看线代的时候看到过.... 然后又温习了一遍线性代数的知识 不妨设\(PA = E\),其中\(P\)是一堆初等矩阵的积(必 ...
- Git 历险记
Git历险记(一) 作为分布式版本控制系统的重要代表--Git已经为越来越多的人所认识,它相对于我们熟悉的CVS.SVN甚至同时分布式控制系统的Mercurial,有哪些优势和不足呢.这次InfoQ中 ...
- SmartGit 授权文件 Free Trial License to Non-Commercial
To alter the license. First, go to Windows: %APPDATA%\syntevo\SmartGit\ OS X: ~/Library/Preferenc ...
- python开发_webbrowser_浏览器控制模块
''' python的webbrowser模块支持对浏览器进行一些操作 主要有以下三个方法: webbrowser.open(url, new=0, autoraise=True) webbrowse ...
- jquery.uploadify 使用过程
HTML: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"& ...
- Linux线程 之 线程 线程组 进程 轻量级进程(LWP) -systemtap -mysql
http://blog.chinaunix.net/uid-24774106-id-3650136.html http://blog.itpub.net/15480802/viewspace-7627 ...
- mysql安装三 linux源码安装mysql5.6.22
http://blog.csdn.net/beiigang/article/details/43053803
- jsp页面传递参数是如何与javabean进行关联的
总结:1.severlet容器是通过JavaBean中的属性方法名来获取属性名的,然后根据此属性名来从request中取值 2.JavaBean中属性方法的命名,set后的名称要与你从request中 ...