当前位置: 首页 > 后端技术 > Java

LeetCode-153-Findtheminimumvalueintherotation-sortedarray

时间:2023-04-01 14:41:24 Java

Findtheminimumvalueintherotation-sortedarray题目描述:给定一个长度为n的数组,预先按升序排列,1到之后n次旋转,得到输入数组。比如原数组nums=[0,1,2,4,5,6,7]改变后可能得到:如果旋转4次,可以得到[4,5,6,7,0,1,2]旋转7次可以得到[0,1,2,4,5,6,7]注意数组[a[0],a[1],a[2],...,a[n-1]]旋转一次的结果就是数组[a[n-1],a[0],a[1],a[2],...,a[n-2]].给定一个包含互不相同元素值的数组nums,它最初是一个按升序排列的数组,并如上所述旋转了多次。请找到并返回数组中的最小元素。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:数组遍历通过遍历数组来解决。遍历过程如下:如果当前元素大于当前元素的下一个元素,则说明当前元素为原数组的最大值,下一个元素为最小值,下一个元素直接返回。如果遍历后发现没有下一个元素的当前元素大于当前元素,则说明第一个元素是最小的元素,并返回。publicclassLeetCode_153{publicstaticintfindMin(int[]nums){//遍历数组中的元素,如果当前元素大于当前元素的下一个元素,则表示当前元素为最大值原始数组,下一个元素是(inti=0;inums[i+1]){returnnums[i+1];}}//如果不存在当前元素大于当前元素的下一个元素,则表示第一个元素为最小元素,返回nums[0];}publicstaticvoidmain(String[]args){int[]nums=newint[]{4,5,6,7,0,1,2};//测试用例,预期输出:0System.out.println(findMin(nums));}}【每日留言】生活就是这样,不锻炼,不锻炼就不会成长。