4.16 360笔试编程题 12+4行代码搞定

第一次做这么简单的编程题,我这个菜比不到20分钟就写完了😂
第一题:
给定一个子串,求所有子串中最多的子串的个数。
例如aba的子串为a,b,a,ab,ba,aba,最多子串为a,输出2。
注意题目描述,aba的子串为a,b,a,ab,ba,aba,而不包括aa,说明题目所说的“子串”描述的是连续子串。
由于若连续子串出现n次,则其所有字符也至少出现n次,因此直接用map统计单个字符的数量。

注意此算法只能针对连续子串,若是不连续子串不能用此算法。例如aaabbb,a和b只出现了3次,而ab出现了3x3=9次。

第2题仓库偷东西:
仓库本来有LxRxH个物品,被偷成(L-2)x(R-1)x(H-2),已知剩下物品数量,求可能丢失的物品的最大值。
题目等价于:已知abc的乘积,求(a+2)(b+1)(c+2)-abc的最大值。
由于abc给定,要使(a+2)(b+1)(c+2)最大,即所翻倍数最多。显然abc中原来的值越小,加上1或者2后翻倍就会越多。由于是正整数,即值为1时翻倍最多。
而为了使abc乘积不为1,保留一个数b不为1,令a和c为1,此时所翻倍数是最大的。
因此,令a和c为1,直接计算输出就行了。主函数4行代码搞定:


#笔试题目##360公司#
全部评论
第2题用int会溢出,通过91%,因此用long long
点赞 回复 分享
发布于 2022-04-16 18:44
绝了 我没想那么多 直接回溯全遍历 结果只过了40%🤣
点赞 回复 分享
发布于 2022-04-16 19:24
太菜了我,看不懂第二题大佬的讲解,害
点赞 回复 分享
发布于 2022-04-16 21:19
第一题思路一样,用js写,死活都是63通过
点赞 回复 分享
发布于 2022-04-17 09:49
是算法岗吗?
点赞 回复 分享
发布于 2022-04-17 13:14
老哥现在流程是什么状态啊,是笔试还是用人部门筛选?
点赞 回复 分享
发布于 2022-04-19 23:06
当时做笔试的时候一道滑动窗口一道动态规划😂
点赞 回复 分享
发布于 2022-06-01 14:03

相关推荐

评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客企业服务