思路:
用两层循环找到数据处理的最小值。第一层循环,数组依次以每个元素作为减数,以第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; } }



京公网安备 11010502036488号