当前位置: 首页 > news >正文

Leetcode -- Find Minimum in Rotated Sorted Array

题目描述:


Suppose a sorted array is rotated at some pivot unknown to you beforehand.


(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).


Find the minimum element.


You may assume no duplicate exists in the array.


思路:二分法查找。
1. 如果中间值(nums[m]) < 最左边值(nums[l]),最小值在左半部分,即r = m
2. 如果nums[m] > nums[l],如果此时nums[r] > nums[m],即nums[r]>nums[m]>nums[l],说明nums[l]就是最小值。否则,最小值在右半部分,即l=m。
3. 循环条件为l < r-1,如果最后没有找到,需要比较nums[l]和nums[r]的大小




实现代码:



public class Solution {
    public int FindMin(int[] nums) {
        var l = 0;
    	var r = nums.Length - 1;
    	
    	while(l < r - 1){
    		var m = (l + r) / 2;
    		if(nums[m] < nums[l]){
    			r = m;
    		}
    		else if(nums[m] > nums[l]){
    			if(nums[r] > nums[m]){
    				return nums[l];
    			}
    			l = m;
    		}
    	}
    	
    	return Math.Min(nums[l], nums[r]);
    }
}


相关文章:

  • SQL2005CLR函数扩展-树的结构
  • LeetCode -- Longest Consecutive Sequence
  • Flex与.NET互操作(八):使用FluorineFx网关实现远程访问
  • LeetCode -- Missing Number
  • [Windows编程] Windows 7 对多核的支持
  • LeetCode -- Palindrome Linked List
  • SSH客户端设置环境变量
  • LeetCode -- Search for a Range
  • 老子生平
  • LeetCode -- Simplify Path
  • 老子著述
  • LeetCode -- Single Number
  • LeetCode -- Find Peak Element
  • 老子思想
  • LeetCode -- Add Two Numbers
  • 【刷算法】从上往下打印二叉树
  • Android 控件背景颜色处理
  • Babel配置的不完全指南
  • ES6 学习笔记(一)let,const和解构赋值
  • JavaScript新鲜事·第5期
  • JS函数式编程 数组部分风格 ES6版
  • js算法-归并排序(merge_sort)
  • js正则,这点儿就够用了
  • mac修复ab及siege安装
  • Python实现BT种子转化为磁力链接【实战】
  • React-redux的原理以及使用
  • SQLServer之创建显式事务
  • vue-cli在webpack的配置文件探究
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 关于Flux,Vuex,Redux的思考
  • 两列自适应布局方案整理
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 树莓派 - 使用须知
  • 通信类
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • Linux权限管理(week1_day5)--技术流ken
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • #《AI中文版》V3 第 1 章 概述
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (二)斐波那契Fabonacci函数
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十八)三元表达式和列表解析
  • (四)库存超卖案例实战——优化redis分布式锁
  • (循环依赖问题)学习spring的第九天
  • (状压dp)uva 10817 Headmaster's Headache
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET框架
  • .NET业务框架的构建