局部最小值位置
来源:互联网 发布:淘宝全屏优惠券代码 编辑:程序博客网 时间:2024/06/05 16:57
定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0]<arr[1],那么arr[0]是局部最小;如果arr[N-1]<arr[N-2],那么arr[N-1]是局部最小;如果0<i<N-1,既有arr[i]<arr[i-1]又有arr[i]<arr[i+1],那么arr[i]是局部最小。 给定无序数组arr,已知arr中任意两个相邻的数都不相等,写一个函数,只需返回arr中任意一个局部最小出现的位置即可。
class Solution {public: int getLessIndex(vector<int> arr) { int n = arr.size(); if(n <= 0) return -1; if(n == 1) return 0; if(arr[0] < arr[1]) return 0; //考虑最左边 if(arr[n-1] < arr[n-2]) return n-1; //考虑最右边 int left=1,right=n-2;//对中间部分寻找局部最小 while(left <= right){ int mid = (left+right)/2; if(arr[mid-1] > arr[mid] && arr[mid+1] > arr[mid]) return mid; else if(arr[mid] > arr[mid-1]) right = mid-1; else if(arr[mid] > arr[mid+1]) left = mid+1; } return -1; }};
阅读全文
0 0
- 局部最小值位置
- 局部最小值位置练习题
- 局部最小值位置练习
- 局部最小值位置
- [牛客网--左老师]局部最小值位置
- 每日一练-----局部最小值位置
- 二分搜索——局部最小值位置
- 局部最小值
- 局部最小值位置、元素最左出现、循环有序数组最小值
- 局部最小值的算法
- tensorflow的局部最小值
- 数组------最短排序+左右最值最大差+局部最小值位置+子数组最大乘积+多数组中位数
- 常见跳出局部最小值策略
- 局部变量的位置分配
- python list最小值,位置,最小几个值
- C++ Vector 最大 最小值 索引 位置
- C++ Vector 最大 最小值 索引 位置
- C++ Vector 最大 最小值 索引 位置
- android lru缓存 辅助类LruCache源码解析
- spring cloud ribbon
- Java编程思想之枚举类型
- CNN详解
- hive函数参考手册
- 局部最小值位置
- JAVA设计模式之抽象工厂模式
- 【TEST】2017百度之星程序设计大赛
- 8.30 今天学到了什么
- 【yoyo】移入切换
- 乐观锁悲观锁
- 计算机之批处理处理程序
- DjangoORM查询方式
- 搬砖---动态规划