public static long solution(int n, int[] nums) { long sum=0; if(n<=2){ for(int num:nums){ sum+=num; } return sum; } int res=0; // 每次选择差值最大的进行踏前斩 Math.max(nums[i]+nums[i+1]+nums[i+2]-6) while(res!=n-2){ res=0; int index=-1; long max=0; for(int i=0;i<=n-3;i++){ if(nums[i]>=1&;&;nums[i+1]>=2&;&;nums[i+2]>=3){ int diff=nums[i]+nums[i+1]+nums[i+2]-6; if(diff>=max){ index=i; max=diff; } }else{ res++; } } if(index!=-1){ sum+=5; nums[index]-=1; nums[index+1]-=2; nums[index+2]-=3; } } for(int num:nums) sum+=Math.max(0,num); //普通攻击 return sum; }
点赞 1

相关推荐

半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务