剑指 Offer 11. 旋转数组的最小数字
题目:
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2]
为 [1,2,3,4,5]
的一个旋转,该数组的最小值为1。
代码1:
1 class Solution { 2 public int minArray(int[] numbers) { 3 if(numbers.length==1){return numbers[0];} //长度为1,直接输出 4 else{ 5 for(int i=1;i<numbers.length;i++){ 6 if(numbers[i]<numbers[i-1]){ //当发生旋转且长度小于n-1时,旋转数字和未旋转数字边界时由大变小关系 7 return numbers[i]; 8 } 9 } 10 return numbers[0]; //当旋转长度为n时,即数组未发生变化,numbers[0]就是最小数字 11 } 12 } 13 }
代码2:
1 class Solution { 2 3 public int minArray(int[] numbers) { 4 5 if(numbers.length==1){return numbers[0];} //长度为1,直接输出 6 7 Arrays.sort(numbers); //利用排序算法 8 9 return numbers[0]; 10 } 11 }
代码3:
1 class Solution { 2 3 public int minArray(int[] numbers) { 4 5 if(numbers.length==1){return numbers[0];} //长度为1,直接输出 6 7 TreeSet<Integer> ts=new TreeSet<>(); 8 9 for(int i=0;i<numbers.length;i++){ 10 11 ts.add(numbers[i]); 12 13 } 14 15 return ts.first(); 16 17 } 18 19 }
分类:
leetcode
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术