刷题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. ...
随机推荐
- Vue - slot-scope="scope" 的意义
<template slot-scope="scope"> <el-button type="primary ...
- python csv
Python 读取csv的某行 Python 读取csv的某列 Python写了一个可以提取csv任一列的代码,欢迎使用.Github链接 两个list写入csv文件 column1,column2 ...
- PHP数据库连接
<?php //设置编码格式 header("Content-type:text/html;charset=utf-8"); /** * Created by PhpStor ...
- InvalidOperationException: Cannot create a DbSet for 'IdentityUserClaim<string>' because this type is not included in the model for the context.
An unhandled exception occurred while processing the request. InvalidOperationException: Cannot crea ...
- 三、jsx简化教程
1)使用 JSX 的好处 1.提供更加语意化且易懂的标签 与html对比 <!--HTML写法--> <form class="messageBox"> & ...
- 第二十篇ORM查询与SQL语句
ORM查询与SQL语句 多表操作 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情 ...
- AD在更新PCB的时候,每次封装都会改变位置?
转载:https://blog.csdn.net/abc87891842/article/details/52538660 3.如果是很多元件的ID不一致, 手动修改太麻烦了, 可以使用AD的 &qu ...
- 使用jdbc连接oracle
1.创建一个jdbc.properties 文件 driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@127.0.0.1:1521 ...
- C++编程学习(三)运算符
一.运算符 1.求余运算双方必须是整数. 2.编程时一定要注意运算符的优先级!!!例如: int a=5,b=6,c=6,k; 3>4 //结果为假 a<b //结果为真 k= b!=c ...
- 1. react 简书 项目初始化
1. 创建 react 项目 npx create-react-app my-app 2. src 目录下删除 除了 index.js index.css app.js 的文件 3. 引入 style ...