最大差值问题
来源:互联网 发布:淘宝时尚女装广告语 编辑:程序博客网 时间:2024/04/30 11:33
题目:有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。
给定数组A及它的大小n,请返回最大差值。
测试样例:
[10,5],2
返回:0
解题思路:因为b>=a所以两者的差为,后者减前者,先遍历一次将两者的差保存下来得到n-1个值,然后将这n-1个值找到连续和最大的连续子序列就为两者最大的差值,若连续子序列和最大为负数则两者最大差值为0
求解最大连续子序列和问题 可以用动态规划进行O(n),也可以递归求解O(nlogn),也可以暴力破解O(n^2)(参考http://www.tuicool.com/articles/NfmyIf)
/*** * 获取集合A的最大差值 * @param A * @param n 集合的长度 * @return */int getDis(int[] A, int n) { // write code here int i = 0; int B[] = new int[n-1]; for(;i < n-1; i++){ B[i]= A[i+1]-A[i]; } if(maxSubsequence(B,n-1) < 0){ return 0; }else{ return maxSubsequence(B,n-1); } }/** * 动态规划求解最大连续子序列和 * @param A * @param length * @return */public int maxSubsequence(int A[],int length){int maxSum = 0;//记录最大的子序列和int tmpSum=0;//临时最大子序列和for(int i = 0; i < length; i++){tmpSum += A[i];if (tmpSum > maxSum) {maxSum = tmpSum;}else if(tmpSum < 0){//小于0则可以直接抛弃tmpSum = 0;}}return maxSum;}<span style="color: rgb(102, 102, 102); font-family: Arial; font-size: 14px; line-height: 24px; text-indent: 28px;">spark,hadoop交流群,群QQ号:521066396,欢迎加入共同学习,一起进步~</span>
0 0
- 最大差值问题
- 最大差值问题
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 最大差值
- 股票最大收益问题及数组最大差值问题
- 【面试】求数组元素最大差值的问题
- 【面试】求数组元素最大差值的问题
- datagrid绑定日期格式化
- Mysql修改时间的年月日,时分秒不变
- CC2530定时器输出PWM波设置方法
- Android设置虚线、圆角、渐变
- OVAL学习之第二篇
- 最大差值问题
- 大家好!
- Java入门 第二季第一章 类和对象
- 一份简短的关于 PHP 容易混淆知识点的实用指南
- Android 动画详解(一)
- 单例模式的数据库连接和PHP实现页面静态化的第一种方法
- 出口跨境电商的路在何方?
- SVN 在线代码托管工具
- Android群侠传第三章阅读笔记(二)