java 找出数组中两个元素之间的最大差异,以便较小的元素出现在较大的元素之前
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 找出数组中两个元素之间的最大差异,以便较小的元素出现在较大的元素之前相关的知识,希望对你有一定的参考价值。
import java.util.*;
public class MaxDiffElements {
public class Pair {
int min;
int max;
Pair(int min, int max){
this.min= min;
this.max = max;
}
public String toString() {
return "[" + min + "," + max + "]";
}
}
public static void main(String args[]) {
MaxDiffElements maxDiffElements = new MaxDiffElements();
int[][] input = {
null,
{},
{1},
{2,7,9,5,1,3,5},
{3,5,8,4,5,9,10,8,5,3,4},
{1,2,3,4,5},
{5,4,3,2,1}
};
for(int i=0; i< input.length; i++) {
System.out.println("Input: " + Arrays.toString(input[i]) + " Result: " + maxDiffElements.find(input[i]));
}
}
public Pair find(int[] input) {
if(input == null || input.length < 2 ) {
return null;
}
int maxSoFar = Integer.MIN_VALUE;
int diff = Integer.MIN_VALUE;
for(int i=input.length-1; i >=0; i--) {
if(input[i] > maxSoFar) {
maxSoFar = input[i];
}
if(maxSoFar - input[i] > diff) {
diff = maxSoFar - input[i];
}
}
return new Pair(maxSoFar-diff,maxSoFar);
}
}
以上是关于java 找出数组中两个元素之间的最大差异,以便较小的元素出现在较大的元素之前的主要内容,如果未能解决你的问题,请参考以下文章
使用 SIMD 找出两个元素的最大差异
ArrayIndexOutOfBoundsException,同时找到数组中两个连续元素之间的最大差异
分而治之以找到二维数组中两个有序元素之间的最大差异
找出数组 arr 中重复出现过的元素
java 中如何 找出两个集合中的不重复的元素
用javascript编写(找出两个数组中的差异元素并存入一个新的数组,假设每个数组内部都没有重复元素)。