某公司自动化测试3面
1|0某公司自动化测试3面
仅供参阅,并不提供参考答案,上课的时候多数讲解过
算法题给了你一个参考,都是力扣上的
1|1一面
1|2二面
1|3三面
2|0算法题
2|1LeetCode 217存在重复元素
-
- 这道题有个变种,有的会让你返回重复的那个数的值,若存在多个,随便返回一个即可
-
思路
-
方案1:排重后看列表长度是否有变化
-
方案2:哈希表,一个个放入,直到有重复
-
方案3:排序后遍历,比较nums[n]和nums[n+1]
-
-
题解1
-
题解2
-
题解3
2|2剑指 Offer 61. 扑克牌中的顺子
-
-
思路
-
仔细读题(做了半天这里还有一个隐含条件,题目没有讲清楚),5张牌中不应该出现超过2个大小王。
-
所以无非是三种情况
- 无大小王: 12345
- 1个大小王,连续的4个数字+0或者跳开1个数字
- 2个大小王,最复杂连续的3个+00,跳开1个数字+0,跳开2个数字+0 ......
-
这样想的确容易被绕进去,组合非常多,而且没有太大的规律,难道要用递归?
-
换个角度,有一种约束可以这样表达
-
不应该出现重复的数字,除了0
-
如果不重复,那除了0之外的,
最大值和最小值的差<5
-
-
题解
-
2|388. 合并两个有序数组
-
-
思路
- 暴力的做法很简单,合并2个数组(注意nums1只需取前面m个数)
- 然后对合并后的数组排序即可
-
题解1
-
题解2
-
如果两个数组从开头向结尾(数字从小到大)进行比较,那么每次把比较之后的数字放置到 nums1 中的前面,则需要把 nums1 中后面的元素向后移动。移动次数比较多。
-
如果两个数组从结尾向开头(数字从大到小)进行比较,那么每次把比较之后的数字放置到 nums1 中的后面,由于后面的数字本身就是提供出来的多余的位置,都是 0,因此不需要对 nums1 进行移动。
-
如果nums1[m-1]比nums2[n-1]大,那么nums1[m+n-1]换为nums1[m-1],m左移
-
如果nums1[m-1]比nums2[n-1]小,那么nums1[m+n-1]换为nums2[n-1],n左移
-
当m或n为0的时候,循环就退出了,但要想清楚m为0的时候说明n可能不为0,说明nums2还有数据都小,那nums1还有n个位置,要用nums2[:n]来替换
-
但当n为0的时候nums1余下的数不需要做任何处理的
-
__EOF__

本文作者:博客已废弃
本文链接:https://www.cnblogs.com/wuxianfeng023/p/17463065.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/wuxianfeng023/p/17463065.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)