题解 | #牛牛的消消乐#

牛牛的消消乐

http://www.nowcoder.com/practice/9deb03b935ec4fd288a8ee5d20364581

思路

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

全部评论

相关推荐

双尔:反手回一个很抱歉,经过慎重考虑,您与我的预期暂不匹配,感谢您的投递
点赞 评论 收藏
分享
10-15 10:23
门头沟学院 Java
牛可乐的头像真牛:赶紧举报,这公司绝对是诈骗的,等你签约后工作一两个月后根据合同漏洞把你开除,并且要求你赔偿3w培训费,996是为了提前筛选心甘情愿签下合同容易受骗的群体,纯粹面向校招生精心设计的骗局
你见过哪些工贼行为
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务