百度笔试

踏前斩怎么做
全部评论
用贪心,二三题测试用例都能过,但是提交通过都是0,感觉二三题就算说解法有漏洞,0也不可能啊……是系统问题还是官方故意设置的
2 回复 分享
发布于 2022-09-13 21:28 湖北
先统计所有血量count,从后往前,贪心思想,能减一个[1,2,3]序列就减一个这个序列,每减一个count减1,最后输出count
点赞 回复 分享
发布于 2022-09-13 22:03 上海
没看 去做微众了 结果微众没做出来 想死
点赞 回复 分享
发布于 2022-09-13 21:35 江西
从后往前遍历一遍就行了
点赞 回复 分享
发布于 2022-09-13 21:32 安徽
        int[] a = new int[n];         long res = 0l;         for(int i = 0; i < n; i++) {             a[i] = in.nextInt();             res += a[i];         }         for(int i = n-1; i >= 2; i--) {             if(a[i] >= 3) {                 int t1 = a[i-2];                 int t2 = Math.min(t1, a[i-1]/2);                 int t3 = Math.min(t2, a[i]/3);                 res -= t3;                 a[i] -= t3*3;                 a[i-1] -= t3*2;                 a[i-2] -= t3;             }         }         System.out.println(res);
点赞 回复 分享
发布于 2022-09-13 21:36 北京
可不可以把每个位置能踏前斩的次数统计出来,然后找最大值,优先用这个最大值,这个位置能踏前斩的次数就变为0。再更新左右的能踏前斩次数,再找最大值,直到所有位置都不能踏前斩了。
点赞 回复 分享
发布于 2022-09-13 22:03 江苏
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;     }
点赞 回复 分享
发布于 2022-09-13 21:39 北京
回溯过了5%
2 回复 分享
发布于 2022-09-13 21:30 湖南
同问,有解了踢我
点赞 回复 分享
发布于 2022-09-13 21:40 重庆
什么岗啊,题不太一样
点赞 回复 分享
发布于 2022-09-13 21:44 四川

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
评论
1
5
分享
牛客网
牛客企业服务