数组内两个元素的最大差
来源:互联网 发布:vue.js有哪些ui框架 编辑:程序博客网 时间:2024/05/16 19:14
Maximum difference between two elements such that larger element appears after the smaller number
2016京东商场校园招聘笔试题
问题描述:
无序数组array, 找到数组中两个数的最大差值, 且大数出现在小数之后,如:arr[i]-arr[j], 且
比如: array 是 [2, 3, 10, 6, 4, 8, 1],最大差值是8(2-10)
方法1
依次访问数组中的每一个元素:
1) 记录当前访问过的数组中的最小值 min_val;2) 当前元素值arr[i] - min_val 和 max_diff作比较 若大于 max_diff , 则更新它的值
时间复杂度O(n)
空间复杂度O(1)
#include <iostream>using namespace std;int maxDiff(int *arr, int n){ int min_val = arr[0]; int max_diff = arr[1]-arr[0]; for(int i=1; i<n; ++i) { if(max_diff <(arr[i]-min_val)) max_diff = arr[i] - min_val; min_val = arr[i]<min_val?arr[i]:min_val; } return max_diff;}int main(){ int arr[] = {2, 3, 10, 6, 4,8,1}; cout<<maxDiff(arr, 7)<<endl;}
0 0
- 数组内两个元素的最大差
- 无序数组O(n)时间找到排序后的两个相邻元素使得他们之间的差最大
- 重新组合两个数组,使得他们的元素差最小
- 1.2.9 数组中大小最接近的两个元素差
- 求数组中两个元素差的最大值
- 给定两个数组,交换它们的元素,使得两数组元素之和的差绝对值最小
- 交换两个数组的元素,使两个数组和的差最小
- 通过交换两个数组的元素,使数组元素和之差最小
- 两个数组的元素之和最大的前k项
- 华为面试题:通过交换元素,使两个数组的元素和之差最小
- 求一个数组中两个元素的最大差值
- 交换两数组中的元素使得这两个数组的差最小
- 数组分割问题(另一种说法是交换两个数组元素使两个数组和的差最小)
- 求数组中元素为另外两个元素和的最大元素
- Contains Duplicate II:计算数组内位置之差不超过K的两元素位置
- 微软面试:输出整型数组任意两个元素差的绝对值的最小值
- 动态规划系列---求数组中两个元素差的最大值
- 动态规划系列---求数组中两个元素差的最大值
- java核心技术细语解读易忽视点(一)(1-3章)
- CDN网络加速技术
- Java内存分配
- spring 下载地址
- hdu 2795(线段树)
- 数组内两个元素的最大差
- 过滤项目中的Jar包的显示
- 集群的负载均衡技术
- Static关键字
- Java的异常体系
- Java的引用类型
- 安卓——安卓开发学习资料整理
- Eclipse中项目的导入和导出
- 网页中引入字体@font-face 笔记