求一个数组(a(i,j))中元素相减的最大值,且i<=j
来源:互联网 发布:南京金蝶软件 编辑:程序博客网 时间:2024/05/17 02:35
题目的要求是时间复杂度O(n),空间复杂度O(1).
两个错误的思路要避免,一是数组排序,最好的排序算法时间复杂度也是nlogn,明显达不到要求。另外一个是遍历数组求得最大值和最小值,然后相减,但照顾不到i<=j的条件。
正确的思路是对上述第二个算法的改进,将数组第一个元素设置为最大和最小值(i=j=0),最大差值的初始值max就是0,然后移动j,每次移动都计算a[j]-a[i],如果结果大于max就替换max,小于的话什么都不做,而如果结果小于0,则将i赋值为j,继续上面的操作。最终得到的结果就是正确答案。
java实现的代码如下
public class MaxSubtractValueOfArrays {//Find the max value of elements subtract when i <= jpublic static int getMaxSubtractValueofArrays(int a[]){int i = 0;int max = 0;for(int j = 1; j < a.length ; j++){int sub = a[j] - a[i];if(sub > max)max = sub;else if(sub < 0){i = j;}}return max;}public static void main(String[] args) {int a[] = {6,18,3,98,67,24,0,43,17,17,67,81,49,-15,9};int max = MaxSubtractValueOfArrays.getMaxSubtractValueofArrays(a);System.out.println(max);}}
阅读全文
0 0
- 求一个数组(a(i,j))中元素相减的最大值,且i<=j
- 一个数组a[0...n-1],求a[i]-a[j]的最大值,其中i>j
- 一个数组a[0...n-1],求a[j]-a[i]的最大值,其中i<j
- 【分治法】在数组A中,返回i<j,且A[i]>A[j]的(i,j)配对的数量
- 求a[j]-a[i]的最大值,其中j>=i
- boj 1347 简单数组问题 在一个二维数组中 a[i][j]=a[i][j]+a[i-1][j]+a[i][j-1]-a[i-1][j-1] 则a[i][j]为i j位置左上侧所有元素之和
- 给一个数组,求a[i]<a[j]的情况下,j-i的最大值是多少,要求用O(n)时间复杂度
- 已知一个正整数N, 且N = 2i + 2j + … + 2q ,求i, j, ... q的值
- 数组a[i++]=j 与 a[i]++ 的区别
- 求浮点数数组A={A1,A2,A3,…,An}中,Aj-Ai(j>i)的最大值。要求时间复杂度越小越好
- 【谷歌面试题】给出一个数组A,找出一对 (i, j)使得A[i] <= A[j] (i < j)并且j-i最大
- 从一给定的顺序表L中删除下标i--j(i<=j,包括i、j)的所有元素,假定i、j都是合法的
- Codeforces 61E Enemy is weak 求i<j<k && a[i]>a[j]>a[k] 的对数 树状数组
- 设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B[1..n(n+1)/2]中,对上述任一元素aij(1<=i,j<=n,且i<=j)在B中的位置为()
- 三个已排序的数组a,b,c,求i,j,k使a[i]=b[j]=c[k]
- 找出数组a[]中符合a[i]+a[j]=K的数对
- 找数组的i,j(j>i)使得a[j] - a[i]的值最大(算法)
- 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。
- JDK下载安装以及环境变量配置图文详解
- JAVA的23种设计模式---原型模式
- poj3461 (KMP&&扩展KMP)
- 换到互联网电商行业了,以前电信行业的知识积累做下笔记,VCS-1
- 事件
- 求一个数组(a(i,j))中元素相减的最大值,且i<=j
- 单页面应用及前端总结
- 新鲜出炉,Amazon SDE 面经(电面+Onsite)
- 电脑系统不认移动硬盘盘符
- 使用VRTK在场景中实现传送 (一)
- java值传递和引用传递 面试题
- visual sudio2015下编译libuv1.1x
- Ubuntu12.04 手把手安装教程(图形讲解)
- 电纸书制作(特备适合kindle)