博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
153. Find Minimum in Rotated Sorted Array
阅读量:6867 次
发布时间:2019-06-26

本文共 1206 字,大约阅读时间需要 4 分钟。

Suppose an array sorted in ascending order 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.

Example 1:

Input: [3,4,5,1,2] Output: 1

Example 2:

Input: [4,5,6,7,0,1,2]Output: 0

难度:medium

题目:假设一个按升序排序的数组在某个未知的轴上旋转。假定数组中没有重复元素。

思路:分情况二叉搜索

clipboard.png

Runtime: 0 ms, faster than 100.00% of Java online submissions for Find Minimum in Rotated Sorted Array.

Memory Usage: 37.6 MB, less than 100.00% of Java online submissions for Find Minimum in Rotated Sorted Array.

class Solution {    public int findMin(int[] nums) {        return findMin(nums, 0, nums.length - 1);    }        public int findMin(int[] nums, int left, int right) {        int mid = left + (right - left) / 2;        // 升序        if (nums[left] <= nums[mid] && nums[mid] <= nums[right]) {            return nums[left];        }        // 降序        if (nums[left] >= nums[mid] && nums[mid] >= nums[right]) {            return nums[right];        }        // 升序占大降序占小        if (nums[left] >= nums[mid]) {            return findMin(nums, left, mid);        }         // 升序占小降序占大        return findMin(nums, mid, right);    }}

转载地址:http://srdfl.baihongyu.com/

你可能感兴趣的文章
Convert Object to XML using LINQ
查看>>
2岁半的儿子
查看>>
最近看的关于EF的文章
查看>>
Java之内存分析和String对象
查看>>
《代码大全》阅读笔记-24-重构
查看>>
Ubuntu 11.10 快捷键
查看>>
14委托和事件在观察者模式中更好的写法
查看>>
《Play for Java》学习笔记(三)template+Message
查看>>
29防止程序集被篡改仿冒,全局程序集缓存GAC
查看>>
【Tips】史上最全H1B问题合辑——保持H1B身份终级篇
查看>>
IOS背景view隐藏键盘
查看>>
现代企业面试经验谈
查看>>
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
查看>>
软件开发基本原则(四)—— 风险管理
查看>>
mass Framework waterfall(瀑布流)插件
查看>>
[ lucene高级 ] Lucene docid,UID mapping and Payload [转]
查看>>
Flex 彻底屏蔽右键 (转载)
查看>>
2015第7周五
查看>>
编程范式 浅析
查看>>
location if (.....) #if与中括号之间要有空格
查看>>