百度笔试

踏前斩怎么做
全部评论
用贪心,二三题测试用例都能过,但是提交通过都是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 江西
可不可以把每个位置能踏前斩的次数统计出来,然后找最大值,优先用这个最大值,这个位置能踏前斩的次数就变为0。再更新左右的能踏前斩次数,再找最大值,直到所有位置都不能踏前斩了。
点赞 回复 分享
发布于 2022-09-13 22:03 江苏
        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 北京
从后往前遍历一遍就行了
点赞 回复 分享
发布于 2022-09-13 21:32 安徽
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:44 四川
同问,有解了踢我
点赞 回复 分享
发布于 2022-09-13 21:40 重庆

相关推荐

最近群里有很多同学找我看简历,问问题,主要就是集中在明年三月份的暑期,我暑期还能进大厂嘛?我接下来该怎么做?对于我来说,我对于双非找实习的一个暴论就是title永远大于业务,你在大厂随随便便做点慢SQL治理加个索引,可能就能影响几千人,在小厂你从零到一搭建的系统可能只有几十个人在使用,量级是不一样的。对双非来说,最难的就是约面,怎么才能被大厂约面试?首先这需要一点运气,另外你也需要好的实习带给你的背书。有很多双非的同学在一些外包小厂待了四五个月,这样的产出有什么用呢?工厂的可视化大屏业务很广泛?产出无疑是重要的,但是得当你的实习公司到了一定的档次之后,比如你想走后端,那么中厂后端和大厂测开的选择,你可以选择中厂后端(注意,这里的中厂也得是一些人都知道的,比如哈啰,得物,b站之类,不是说人数超过500就叫中厂),只有这个时候你再去好好关注你的产出,要不就无脑大厂就完了。很多双非同学的误区就在这里,找到一份实习之后,就认为自己达到了阶段性的任务,根本不再投递简历,也不再提升自己,玩了几个月之后,美其名曰沉淀产出,真正的好产出能有多少呢?而实际上双非同学的第一份实习大部分都是工厂外包和政府外包!根本无产出可写😡😡😡!到了最后才发现晚了,所以对双非同学来说,不要放过任何一个从小到中,从中到大的机会,你得先有好的平台与title之后再考虑你的产出!因为那样你才将将能过了HR初筛!我认识一个双非同学,从浪潮到海康,每一段都呆不久,因为他在不断的投递和提升自己,最后去了美团,这才是双非应该做的,而我相信大部分的双非同学,在找到浪潮的那一刻就再也不会看八股,写算法,也不会打开ssob了,这才是你跟别人的差距。
迷茫的大四🐶:我也这样认为,title永远第一,只有名气大,才有人愿意了解你的简历
双非本科求职如何逆袭
点赞 评论 收藏
分享
2025-12-10 14:51
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
5
分享

创作者周榜

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