思路:
用两层循环找到数据处理的最小值。第一层循环,数组依次以每个元素作为减数,以第i个元素作为被减数,相减后生成新的数组。
第二层循环以第一层循环生成的新的数组,重复第一层循环的操作,然后将最后的元素结果相加之和。遍历后比较得到相加之和的最小值。
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 返回两次操作后,数组元素之和的最小值
* @param nums int整型一维数组 这你你需要操作的数组
* @return long长整型
*/
public long minimumValueAfterDispel (int[] nums) {
if(nums==null||nums.length<3){
return 0L;
}
long min_sum = Integer.MAX_VALUE;
for(int i=0; i<nums.length; i++){//第一次循环
int minus_1 = nums[i];
int[] nums_1 = new int[nums.length];
for(int j=0; j<nums.length; j++){
nums_1[j]=nums[j]>=minus_1?(nums[j]-minus_1):nums[j];
}
for(int j=0; j<nums_1.length; j++){//第二次循环
int minus_2 = nums_1[j];
long sum = 0;
for(int k=0; k<nums_1.length; k++){
int nums_2=nums_1[k]>=minus_2?(nums_1[k]-minus_2):nums_1[k];
sum+=nums_2;
}
if(sum<min_sum){
min_sum=sum;
}
}
}
return min_sum;
}
}