LeetCode—33. 搜索旋转排序数组
33. 搜索旋转排序数组
题目描述:整数数组 nums 按升序排列,数组中的值 互不相同 。
在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。
给你旋转后的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。
考察重点:二分查找
方法概括:先遍历找到旋转位置,前数组为原数组后半部分,后数组为原数组前半部分,根据target大小选择在哪个数组进行二分查找。
public int search(int[] nums, int target) {int left = 0, right = nums.length - 1;for (; left + 1 <= right && nums[left] < nums[left + 1]; left++) {} //遍历找到旋转的起始位置//对于[4,5,6,7,0,1,2] left目前指向7,right目前指向2if (left == right) { // left right更新为记录待查找数组的左右边界left = 0;} else if (nums[right] >= target) {left++;} else { right = left;left = 0;}while (left <= right) {int mid = left + (right - right) / 2;if (nums[mid] == target) {return mid;}if (target < nums[mid]) {right = mid - 1;}if (target > nums[mid]) {left = mid + 1;}}return -1;
}
LeetCode—33. 搜索旋转排序数组相关推荐
- LeetCode 33. 搜索旋转排序数组 golang
33. 搜索旋转排序数组 三个测试用例, 这个题的难度是二分法的左侧条件很难写出来. 4 5 6 0 1 2 3 1 2 3 4 5 6 0 5 1 2 3 4 ( 例如,数组 [0,1,2,4,5, ...
- leetcode —— 33. 搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个目标值, ...
- leetcode 33 搜索旋转排序数组 到处是细节的好题
这个题想了想就会做,只是细节真的能卡死人,找了好久的bug.甚至我怀疑我现在的代码可能还有错,只是没例子测出来. 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2, ...
- LeetCode 33. 搜索旋转排序数组(二分查找)
1. 题目 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在 ...
- Leetcode 33.搜索旋转排序数组 (每日一题 20210707)
整数数组 nums 按升序排列,数组中的值 互不相同 .在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [num ...
- Dichotomy专栏:Leetcode:#33 搜索旋转排序数组
Question: 整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ...
- leetCode:33. 搜索旋转排序数组
整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nu ...
- LeetCode 33 搜索旋转排序数组
https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ 解决方案 class Solution {public int sea ...
- LeetCode 33. 搜索旋转排序数组
最新文章
- NodeJS + PhantomJS 前端自动化资源监控
- C# 控件置于最顶层、最底层
- Flask-Migrate
- 431.chapter10. working with flat files
- python的out模式_如何用python中的DataFrame列的模式替换NA值?
- 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统
- 实验五 数独游戏界面设置
- 服务器指示灯详情 中兴,IBM服务器故障_指示灯介绍
- html5制作前端优势,HTML5前端开发原来有这么多优势!
- 完美手柄震动效果-xbox360手柄模拟器下载
- 华罗庚杯成绩查询2021高考成绩,第22届华杯赛入围决赛分数线已定,明天起可查询成绩...
- 梦三花重金修改服务器,2021年3月31日维护公告:新门派花果山
- 软媒定时关机,电脑无法启动
- Python学习教程公开课:好玩的Python
- Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
- 数据分析——关于同比与环比,你真的了解吗?看看踩过的坑
- 实习每日总结_20161219
- 学习SEO有别的味道
- Core Dump技术介绍
- 低端Windows平板汇总