刷题33. Search in Rotated Sorted Array
一、题目说明
这个题目是33. Search in Rotated Sorted Array,说的是在一个“扭转”的有序列表中,查找一个元素,时间复杂度O(logn)。
二、我的解答
这是一个查找,根据复杂度,我们知道只能用二分查找。但由于这个不是一个完全的有序列表,故需要改造。先写出二分查找(来源于数据结构):
二分查找:
int search(vector<int>& nums, int target){
if(nums.size()<0) return -1;
int start = 0, end=nums.size()-1;
int mid = -1;
while(start <= end){
//mid = (start + end) /2;
mid = start + (end - start) /2;
if(target == nums[mid]){
return mid;
}else if(target < nums[mid]){
end = mid -1;
}else{
start = mid + 1;
}
}
return -1;
}
然后在二分查找基础上进行改进:
class Solution{
public:
int search(vector<int>& nums, int target){
if(nums.size()<0) return -1;
int start = 0, end=nums.size()-1;
int mid = -1;
while(start<=end){
mid = start + (end - start) / 2;
if(nums[mid] == target) return mid;
//前半部分有序
if(nums[start]<=nums[mid]){
//target在前半部分
if(target >=nums[start] && target<nums[mid]){
end = mid -1;
}else{
start = mid + 1;
}
}else{
//后半部分有序
if(target<=nums[end] && target>nums[mid]){
start = mid + 1;
}else{
end = mid -1;
}
}
}
return -1;
}
};
三、优化措施
无
刷题33. Search in Rotated Sorted Array的更多相关文章
- 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 153. Find Minimum in Rotated Sorted Array 、154. Find Minimum in Rotated Sorted Array II 、33. Search in Rotated Sorted Array 、81. Search in Rotated Sorted Array II 、704. Binary Search
这4个题都是针对旋转的排序数组.其中153.154是在旋转的排序数组中找最小值,33.81是在旋转的排序数组中找一个固定的值.且153和33都是没有重复数值的数组,154.81都是针对各自问题的版本1 ...
- [Leetcode][Python]33: Search in Rotated Sorted Array
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 33: Search in Rotated Sorted Arrayhttps ...
- [array] leetcode - 33. Search in Rotated Sorted Array - Medium
leetcode - 33. Search in Rotated Sorted Array - Medium descrition Suppose an array sorted in ascendi ...
- LeetCode 33 Search in Rotated Sorted Array [binary search] <c++>
LeetCode 33 Search in Rotated Sorted Array [binary search] <c++> 给出排序好的一维无重复元素的数组,随机取一个位置断开,把前 ...
- 33. Search in Rotated Sorted Array & 81. Search in Rotated Sorted Array II
33. Search in Rotated Sorted Array Suppose an array sorted in ascending order is rotated at some piv ...
- LeetCode 33. Search in Rotated Sorted Array(在旋转有序序列中搜索)
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
- leetCode 33.Search in Rotated Sorted Array(排序旋转数组的查找) 解题思路和方法
Search in Rotated Sorted Array Suppose a sorted array is rotated at some pivot unknown to you before ...
- [LeetCode] 33. Search in Rotated Sorted Array 在旋转有序数组中搜索
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
随机推荐
- Redis集群环境之linux搭建多机版---已完结,跟着一步一步来你就可以集群成功
上一篇踩着各种坑写了Redis集群环境之linux搭建单机版,这一篇准备就多机版集群进行搭建,主要目的一来是在上一篇的基础上进行精华提粹总结,二来是把单机版与多机版的区别进行记录. 首先软硬件环境: ...
- 刷题49. Group Anagrams
一.题目说明 题目是49. Group Anagrams,给定一列字符串,求同源词(包含相同字母的此)的集合.题目难度是Medium. 二.我的做法 题目简单,就不多说,直接上代码: class So ...
- Java 二叉树深度 判断平衡二叉树
package cookie; public class BTreeDepthIsBalanced { int depth(BNode head) { if (head == null) { retu ...
- 如何安装Anaconda
如何安装Anaconda Python作为一门易读.易维护的语言,在工作和学习中应用广泛,被大量用户所欢迎.本文主要给大家介绍一下Anaconda 步骤 1 Anaconda在官网就可以下载,网址:h ...
- Mapper method 'com.xxxx.other.dao.MyDao.getNo attempted to return null from a method with a primitive return type (int)
使用myBatis调用存储过程的返回值,提示错误信息: org.apache.ibatis.binding.BindingException: Mapper method 'com.xxxx.othe ...
- V-Distpicker不能完整显示内容
V-Distpicker插件在列表中,或者在dialog中只显示了第一次的内容,第二次就开始报错.这个和前篇中的地图问题其实如出一辙. 解决办法,重加载,局部刷新. <el-form-item ...
- SOA--基于银行系统实例分析
阅读以下关于 Web 系统设计的叙述 [说明] 某银行拟将以分行为主体的银行信息系统,全面整合为由总行统一管理维护的银行信息系统,实现统一的用户账户管理.转账汇款.自助缴费.理财投资.贷款管理.网上支 ...
- 详解BurpSuite软件 请求包 HTTP (9.23 第十天)
HTTP协议基础 HTTP:HyperText Transfer Protocol,超文本传输协议 1.协议特点: 简单快速,请求方式get post head等8中请求方式 无连接(一次请求就断开) ...
- bat 卸载程序的脚本
@echo off :: BatchGotAdmin :------------------------------------- REM --> Check for permissions & ...
- tensorflow-cnnn-mnist
#coding=utf-8import tensorflow as tfimport numpy as npimport matplotlib .pyplot as pltfrom tensorflo ...