数组中的一个数字减去它右边子数组中的一个数字可以得到一个差值,求所有可能的差值中的最大值,例如,数组{1,4,17,3,2,9}中,最大的差值为17-2 =15。

动态规划法:

我们用变量dif来记录前i+1个数组成的序列的最大数对差。
用变量max来记录前i+1个数的最大值。
那么对于i+1来说,dif=两者最大值{dif,max-a[i+1]}
迭代到最后,dif就储存了最大的数对之差。

 public static int method(int[] a) {if (a == null)return Integer.MIN_VALUE;if (a.length == 1)return Integer.MIN_VALUE;int dif = a[0] - a[1];int max = a[0] > a[1] ? a[0] : a[1];for (int i = 2; i < a.length; i++) {max = max > a[i] ? max : a[i];dif = dif > (max - a[i]) ? dif : (max - a[i]);}return dif;}public static void main(String[] args) {int[] a = { 1, 4, 17, 3, 2, 9 };System.out.println(method(a));//15}

求数组中数对之差的最大值相关推荐

  1. 求数组中数对的最大值

    题目: 在数组中,每个数字减去它右边的所有数字得到一个数对之差.求所有数对之差的最大值. 例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是9,是16减去5的结果. ...

  2. 求数组中数的最大值、最小值(C语言)

    求数组中数的最大值.最小值(C语言) #include<stdio.h>void main(void) {int num[10],i,imax,imin,imaxp,iminp;for(i ...

  3. 笔试算法题(26):顺时针打印矩阵 求数组中数对差的最大值

    出题: 输入一个数字矩阵,要求从外向里顺时针打印每一个数字: 分析: 从外向里打印矩阵有多重方法实现,但最重要的是构建合适的状态机,这样才能控制多重不同的操作: 注意有四种打印模式(左右,上下,右左, ...

  4. 求数组的子数组之和的最大值

    一个有N个整数元素的一维数组( A[0], A[1], ... , A[n-2], A[n-1]),子数组之和的最大值是什么?(要求子数组的元素是连续的) 例子:有数组( -2, 5, 3, -6, ...

  5. 编程之美 2.14求数组的子数组之和的最大值

    对于一个有N个元素的数组,a[0]~a[n-1],求子数组最大值. 如:数组A[] = [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的子序列[4,−1,2,1]有最大的和6. ...

  6. Programe_Of_Beauty:2.14 求数组的子数组之和的最大值

    问题:一个有N个整数元素的一维数组,那么求子数组和的最大值. 分析:首先我们明确问题,子数组是联系的,不用返回元素的位置,元素是整数,可能为正,负或0.我们来看看最经典的解法:a[0],a[1]-a[ ...

  7. 算法-求数组的子数组之和的最大值

    一个一维int数组,这个数组有很多子数组,那么子数组之和的最大值是什么呢? 思考 1.题目说的子数组是连续的: 2.题目只需要求和,并不需要返回子数组的具体位置: 3.数组的元素是整数,所以数组可能包 ...

  8. 求数组的子数组之和的最大值IV

    在之前的基础上又安排了二维数组的,在课上一开始是理解错要求了,简单的以为用循环数组就能解决,但是却忽视了子数组是否能构成矩形,之后课下和同学们讨论,主要是多重遍历,但是我还是没搞明白怎么构成新的二维数 ...

  9. 编程之美2.14 求数组的子数组之和的最大值

          这是一个在面试中出现概率很高的一道题目,就拿我来说吧,面试了5家公司中,两家公司问了这道题目,可见,这道题目是非常经典的.       解题思想也不是很难,我熟悉的有:两种解题办法:   ...

最新文章

  1. android 数据库索引,SQLite数据库提供警告自动索引(列)升级Android L后
  2. SAP Query达到select * where 的效果 2011-04-29
  3. java mysql aio_Java中的NIO,BIO,AIO分别是什么
  4. F5与Ctrl+F5及地址栏输入地址回车
  5. 用栈实现计算器c语言报告,请问,用c语言做一个计算器 包括+-*/()的运算 用栈 该怎么做...
  6. 配置金蝶14.3APi
  7. 关于JS中和||用法技巧
  8. 2021 年百度之星·程序设计大赛 - 初赛二 1003 魔怔(并查集,联通性,欧拉回路)
  9. 1002. 三角形 (
  10. 单点登录SSO的实现原理与方案详解
  11. 十月第一周学习进度条
  12. 全自动与半自动手表的区别_半自动和全自动的区别在哪里?
  13. python中不包不包括_Python文件部分(不包括数据)
  14. centos 下载tomcat8
  15. Comware V7使用用户名密码方式登录设备典型配置
  16. mapinfo professional 学习资料
  17. 联想Lenovo Legion Y9000X 2020 外接扩展屏不显示画面
  18. 机器人开发--机器人资料汇总
  19. Rockchip | Rockchip Kernel的获取与构建
  20. Excel图标也可以变脸

热门文章

  1. 深度学习 模型压缩之知识蒸馏
  2. bezier曲面制作_Unity渲染——Bezier曲线(曲面)实现
  3. 强化学习领域有哪些最热门和最有前途的研究课题
  4. React Hook/Hooks
  5. XTU-OJ 《C语言程序设计》作业1-数学计算
  6. 苹果,正在“塌方”的西方贵族?
  7. GPT:Generative Pre-Training
  8. nestjs任务调度的使用
  9. JAVA计算机毕业设计纺织代加工车间生产状态监测系统Mybatis+系统+数据库+调试部署
  10. 利用 HBuilderX 制作新闻列表页以及制作注册页面