数组中的最大差值
2016-03-26 21:49
190 查看
有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。给定数组A及它的大小n,请返回最大差值。
解析:贪心思想,时间复杂度为o(n)。设置当前数组中的最小值为min_value。初始化为arr[0],然后依次遍历数组中的每一个元素,当遍历到一个元素时求出当前元素与之前的min_value差值,用该差值和当前最大的差值相比较,如果该差值大于当前最大差值,则更新当前最大差值。然后用该元素和当前最小的元素相比较。如果该元素小于当前最小元素,则更新当前最小元素。
int getDis(vector<int> arr) { //当前数组中的最小值 int min_value = arr[0]; //当前数组中的最大差值 int max_dis = 0; for (int i = 1; i < arr.size(); ++i) { if (max_dis < arr[i] - min_value) { max_dis = arr[i] - min_value; } if (min_value > arr[i]) { min_value = arr[i]; } } return max_dis; }
相关文章推荐
- BestCoder Round #77 (div.2)xiaoxin juju needs help
- FrameBuffer(LCD设备层编程)
- 配置nginx使之支持pathinfo
- 解决由于DNS解析导致Emacs启动巨慢的问题 推荐
- PAT (Advanced Level) Practise 1114 Family Property (25)
- 未能加载文件或程序集“MySQLDriverCS
- strcpy和strncat函数
- 有关软件工程的问题的分析和讨论及课后的作业2
- 页面定时刷新或自动跳转
- 浙江科技学院第十三届程序设计竞赛1008
- 在OSX上开发UNITY本地插件的经验分享
- IOS本地通知实现
- 与运算与异或运算的应用
- 如何建立自己的知识体系
- 大整数相乘问题
- Android开源框架Universal-Image-Loader详解
- 第4次作业
- java 多线程
- 《JAVA笔记 day08 静态_单例》
- JS 事件处理初探秘