求先递增在递减数组中的最大值
来源:互联网 发布:如何安装php开发环境 编辑:程序博客网 时间:2024/05/21 09:28
题目:一个数组先从小到大递增在从大到小递减,找出数组的最大值。
思路:可以依次遍历整个数组如果array[i]满足array[i] > array[i-1] && array[i] > array[i+1],那么i就是最大元素的下标,但是这样做的时间复杂度为O(n)对于有序数组我们可以采用二分查找的方法降低时间复杂度,代码实现如下。
实现代码
#include<iostream>#include<vector>using namespace std;int FindMaxNum(vector<int> array){ int len = array.size(); if (0 == len) return -1; int left = 0; int right = len - 1; int mid = (left + right) >> 1; while (mid > 0 && mid < len-1) { if (array[mid] > array[mid - 1] && array[mid] > array[mid + 1]) return array[mid]; else if (array[mid] > array[mid - 1]) { left = mid + 1; mid = (left + right) >> 1; } else { right = mid - 1; mid = (left + right) >> 1; } } return -1;}int main(){ vector <int> arr; for (size_t i = 0; i < 10; i+=2) { arr.push_back(i); } for (size_t j = 15; j > 5; j-= 3) { arr.push_back(j); } for (size_t k = 0; k < arr.size(); k++) { cout << arr[k] << " "; } cout << endl; int ret = FindMaxNum(arr); cout << ret; return 0;}
阅读全文
0 0
- 求先递增在递减数组中的最大值
- 一个数组先递增后递减求最大值
- 删除元素使得数组元素先递增后递减
- 求数组中的最大值
- 求数组中的最大值
- 求数组中的最大值和次最大值、、、
- 一个数组的值先从小到大递增后从大到小递减,找出最大的值
- 一个数组的值先从小到大递增后从大到小递减,找出最大的值
- 一个数组的值先从小到大递增后从大到小递减,找出最大的值 .
- 一个数组的值先从小到大递增后从大到小递减,找出最大的值
- 求给定数组中的最大值
- 求给定数组中的最大值
- 求二维数组中的最大值
- js 求数组中的最大值
- 求数组中的两个最大值
- 如何求数组中的最大值
- Problem C: 数组---求数组中的最大值
- 求数组中的最长递增子序列
- yum安装openJDK1.8后无法卸载的解决方法
- java volatile关键字解析
- 【太虚AR_v0.1】使用教程 | SLAM(Markerless)
- zookeeper+dubbo和spring的整合
- JDAddressSelector京东 Android 客户端样式的级联地址选择器的使用
- 求先递增在递减数组中的最大值
- python笔记dict篇
- Android Fragment的增加,删除,添加
- 一个服务器上运行多个tomcat,显示总启动某一个特定tomcat
- 第十课记录 MapReduce编程模型与案例
- XZ_JavaScript之JavaScript的两大内置对象
- 处理器管理-进程的状态
- php页面静态化实现思路
- java多线程(3)之join与countDownLatch