当前位置:网站首页>LeetCode_ Binary search_ Medium_ 153. Find the minimum value in the rotation sort array
LeetCode_ Binary search_ Medium_ 153. Find the minimum value in the rotation sort array
2022-07-07 13:22:00 【Old street of small town】
1. subject
We know a length of n Array of , In ascending order in advance , Through 1 To n Time After rotation , Get the input array . for example , Original array nums = [0,1,2,4,5,6,7] After the change may get :
If you rotate 4 Time , You can get [4,5,6,7,0,1,2]
If you rotate 7 Time , You can get [0,1,2,4,5,6,7]
Be careful , Array [a[0], a[1], a[2], …, a[n-1]] Rotate once The result is an array [a[n-1], a[0], a[1], a[2], …, a[n-2]] .
Give you an element value Different from each other Array of nums , It turns out to be an ascending array , According to the above situation, we have made many rotations . Please find and return the smallest element in the array .
You have to design a time complexity of O(log n) The algorithm to solve this problem .
Example 1:
Input :nums = [3,4,5,1,2]
Output :1
explain : The original array is [1,2,3,4,5] , rotate 3 Get the input array for the first time .
Example 2:
Input :nums = [4,5,6,7,0,1,2]
Output :0
explain : The original array is [0,1,2,4,5,6,7] , rotate 4 Get the input array for the first time .
Example 3:
Input :nums = [11,13,15,17]
Output :11
explain : The original array is [11,13,15,17] , rotate 4 Get the input array for the first time .
Tips :
n == nums.length
1 <= n <= 5000
-5000 <= nums[i] <= 5000
nums All integers in are different from each other
nums It turns out to be an ascending array , And carried on 1 to n Second rotation
source : Power button (LeetCode)
link :https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array
2. Ideas
(1) Two point search
Train of thought reference Official solution to this problem .
3. Code implementation (Java)
// Ideas 1———— Two point search
class Solution {
public static int findMin(int[] nums) {
int left = 0;
int right = nums.length - 1;
while (left <= right) {
// If nums[left] < nums[right], shows nums[left...right] The elements between are in ascending order , So the smallest element is nums[left]
if (nums[left] < nums[right]) {
return nums[left];
}
int mid = left + (right - left) / 2;
if (nums[mid] < nums[right]) {
right = mid;
} else {
left = mid + 1;
}
}
return nums[right];
}
}
边栏推荐
- Test next summary
- 单片机原理期末复习笔记
- [QNX hypervisor 2.2 user manual]6.3.4 virtual register (guest_shm.h)
- Mongodb meets spark (for integration)
- Go language learning notes - structure
- PAcP learning note 3: pcap method description
- PCAP学习笔记二:pcap4j源码笔记
- ESP32构解工程添加组件
- Unity build error: the name "editorutility" does not exist in the current context
- [untitled]
猜你喜欢
单片机学习笔记之点亮led 灯
OSI 七层模型
[dark horse morning post] Huawei refutes rumors about "military master" Chen Chunhua; Hengchi 5 has a pre-sale price of 179000 yuan; Jay Chou's new album MV has played more than 100 million in 3 hours
DETR介绍
存储过程的介绍与基本使用
线程池拒绝策略最佳实践
cmake 学习使用笔记(一)
QQ的药,腾讯的票
1、深拷贝 2、call apply bind 3、for of for in 区别
LIS 最长上升子序列问题(动态规划、贪心+二分)
随机推荐
JS缓动动画原理教学(超细节)
滑轨步进电机调试(全国海洋航行器大赛)(STM32主控)
Conversion from non partitioned table to partitioned table and precautions
“新红旗杯”桌面应用创意大赛2022
JS determines whether an object is empty
PCAP学习笔记二:pcap4j源码笔记
About the problem of APP flash back after appium starts the app - (solved)
自定义线程池拒绝策略
Sequoia China completed the new phase of $9billion fund raising
LeetCode_二分搜索_中等_153.寻找旋转排序数组中的最小值
[untitled]
[learning notes] segment tree selection
【黑马早报】华为辟谣“军师”陈春花;恒驰5预售价17.9万元;周杰伦新专辑MV 3小时播放量破亿;法华寺回应万元月薪招人...
分布式事务解决方案
php——laravel缓存cache
Write it down once Net a new energy system thread surge analysis
【Presto Profile系列】Timeline使用
. Net ultimate productivity of efcore sub table sub database fully automated migration codefirst
DrawerLayout禁止侧滑显示
Some principles of mongodb optimization