剑指Offer-8
来源:互联网 发布:如何自学软件编程 编辑:程序博客网 时间:2024/06/05 08:49
题目:
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转, 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。
//coding =javapublic class Solution8 { public static int findMinNum(int[] nums){ if(nums==null || nums.length<1){ throw new RuntimeException("数组为空"); } if(nums.length==1){ return nums[0]; } int min = nums[0]; for(int i=0;i<nums.length-1;i++){ if(nums[i+1]<nums[i]){ min = nums[i+1]; } } return min; } public static int findMinNum2(int[] nums){ if(nums==null || nums.length<1){ throw new RuntimeException("数组为空"); } if(nums.length==1){ return nums[0]; } int index1 = 0; int index2 = nums.length-1; int middle = (index1+index2)>>1; int min; if(nums[index2]>nums[index1]){ min = nums[index1]; return min; } if(nums[index1]==nums[middle] && nums[index2]==nums[middle]){ min = nums[index1]; for(int i=1;i<nums.length;i++){ if(nums[i]<min){ min = nums[i]; } } return min; } while ((index2-index1)!=1){ if(nums[middle]>=nums[index1]){ index1=middle; } if(nums[middle]<=nums[index2]){ index2=middle; } middle=(index1+index2)>>1; } min = nums[index2]; return min; } public static void main(String args[]) throws Exception { int[] a = {4,5,1,2,3}; int result1,result2; result1 = Solution8.findMinNum(a); result2 = Solution8.findMinNum2(a); System.out.println(result1); System.out.println(result2); }}
阅读全文
1 0
- 剑指Offer-8
- 剑指offer面试题8
- 剑指offer 面试题8
- 剑指offer 8 跳台阶
- 剑指offer面试题8
- 【面试题】剑指offer 8
- 剑指OFFER
- 剑指offer
- 剑指Offer
- 剑指offer
- 剑指Offer
- 剑指offer
- 剑指offer
- 剑指offer
- 剑指Offer
- 剑指offer
- 剑指offer
- 剑指Offer
- beego如何获取客户端IP?
- Cordova cordova_sqlite_storage控件的使用
- C#----小知识
- Java实现寻找链表的中间节点
- 服务器常用端口介绍
- 剑指Offer-8
- Python三大神器之pip的安装
- 【git系列之E】git的分支操作(查看分支、切换分支、新建分支和删除分支)
- [RK3288][Android6.0] ALSA的DMA buffer读写位置更新
- codevs 3342 绿色通道(二分+dp+优先队列or单调队列)好题
- hadoop streaming (shell执行 & combiner & 数据分割)
- javascript 位置,尺寸,溢出
- 使用Apache POI生成和解析Excel文件
- Nginx 配置部分详述