24/03/28携程后端笔试记录

本人不熟悉acm形式+编程苦手,希望各位大佬多多指教,如果能放源码和讲讲思路就更好了!

1.you字符串循环,签到题,回忆了下scanner并熟悉了下输出方式(和leetcode return不一样而是直接sout)

2.一次能修改1*2的矩阵,给你一个矩阵(里面元素为0,1),求全部修改为1的最小修改次数
我的思路:无论奇数偶数,行遍历,从左到右从右到左两次遍历,找到有0就更新。
[全错,搞不懂为什么
//二更,赛后复盘,猪鼻了😇,旁观者清啊,菜就得多练]

3.给你一个数组(有奇有偶有负有正),可以选择一个区间(区间里全是偶数)除以2,求整个数组的最大和
我的思路:贪心,找到最小的偶数和区间,遇到大于0就重新记录,最后进行更新
[对了10%,可能是没有判断全正全奇情况不用除等情况云云]

4.n个正整数的阶乘之积,求这个大数的所有因子
我的思路:用map记录因子,剩下套板子(暴力解法懒得优化)
[这对了一半,应该有优化空间]

🤔🤔🤔🤔🤔🤔🤔🤔
#笔试真题#
全部评论
第二题应该考虑连续0出现的情况
1 回复 分享
发布于 03-28 21:33 北京
第二题,从左到右贪心就行了,遇见0,右移两次,结果加1
1 回复 分享
发布于 03-28 21:49 上海
第二题,考虑1001这种情况,我刚开始也是0
点赞 回复 分享
发布于 03-28 21:27 河北
第二题似乎不用考虑那么多,这俩for循环就ac了 for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(matrix[i][j]==0) { ret++;i++ } } }
点赞 回复 分享
发布于 03-28 21:45 江苏
第二题直接贪心遇到0就进行一次操作,第三题用dp[i]表示以i下标元素为结尾的区间最小值,O(n)找到再拿一开始的sum处理一下就行(注意用long存否则溢出),第四题不会hh
点赞 回复 分享
发布于 03-28 22:35 广东
第三题咋做
点赞 回复 分享
发布于 03-28 22:39 陕西

相关推荐

贪食滴🐶:你说熟悉扣篮的底层原理,有过隔扣职业球员的实战经验吗
点赞 评论 收藏
分享
2 6 评论
分享
牛客网
牛客企业服务