程序11-先升序后降序返回最大值
来源:互联网 发布:cad网络培训班 编辑:程序博客网 时间:2024/05/21 01:58
一个数列,先升序后降序,返回最大值的下标。
package org.fan.learn;/** * Created by fan on 2016/10/10. */public class BinarySearchMeituan { public static int search(int[] arr) { //特殊处理 if (arr == null || arr.length == 0) { return -1; } int result = 0; int start = 0; int end = arr.length - 1; int mid = 0; //end-1防止只有两个数据 没有等于号防止只有1个数据 while (start < end - 1) { mid = start + ((end - start) >>> 1); if (arr[mid] > arr[mid-1] && arr[mid] > arr[mid+1]) { return mid; } if (arr[mid] > arr[mid-1] && arr[mid] < arr[mid+1]) { start = mid+1; } if (arr[mid] < arr[mid-1] && arr[mid] > arr[mid+1]) { end = mid - 1; } } if (start == end) { result = start; } if (start < end) { result = arr[start] > arr[end] ? start : end; } return result; } public static void main(String[] args) { //6,7,8,9,4,5,6 //9 //6,7 //6,5 int[] arr = {4,6,5}; System.out.println(search(arr)); }}
感觉用电脑写代码要比在纸上写代码爽多了,而且考虑的更周全;但是,面试时给个电脑,调试不出来怎么办?
0 0
- 程序11-先升序后降序返回最大值
- 升序降序数组查找最大值
- groovy 数组 求最大值最小值 降序 升序
- 升序降序
- 在升序后降序数组中 找到最大的数
- 数组升序降序最大值最小值统计的类模板及实例
- java练习——求数组的最大值、最小值并升序降序排列
- std::sort 升序 ? 降序
- mysql 升序 降序
- mysql 升序,降序
- sql降序,升序
- sql 升序 ,降序
- 索引的升序 降序
- 升序合并为降序
- javascript 升序和降序
- 降序和升序
- 数组冒泡升序降序
- 升序和降序操作
- 形式参数是类名
- iOS7之后经过滑动返回导航栏隐藏和显示带来的坑
- 掌握 Linux PC 性能之基准测试
- 匿名问题
- python 时间模块: datetime
- 程序11-先升序后降序返回最大值
- 封装和private关键字
- 源码-数据库调优(tuning)初接触
- 1-1 C++ learning
- 你可能不清楚的Java细节(2)--for及for-each各自循环适用的场景
- 关于今天笔试关于java一些基础题的疑惑
- 初探Docker
- this关键字
- c语言----交换a,b的值(分别用临时变量,加减法,异或实现)