您的位置:首页 > 理论基础 > 数据结构算法

正数数组求a[j]-a[i]最大值,j>=i

2018-01-03 21:09 141 查看

一、解决代码

public class Question28 {
public static void main(String[] args) {
int a[]=new int[]{
1,2,3,4,3,3,5
};
returnMax(a);
}
// 求a[j]-a[i]最大值
static void returnMax(int []a){
int max=0;
for(int i=0,j=0;j<a.length;j++){
if(a[j]-a[i]>max){
max=a[j]-a[i];
}
if(a[j]<a[i]){
i=j;
}
}
System.out.println(max); //4
}

}


二、分析

1、a[i]和a[j]都是正数,因此a[j]-a[i] (j>=i)最小值为0,故max初始值为0

2、j负责循环a数组取得数组中每一个元素, i负责指向小的数。每次循环都会让a[j]-a[i]与max进行比较,若大于max,则赋给max此时的a[j]-a[i]。

Patient man, can get what he wanted
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐