春招已经开始了。 你是不是已经开始准备了呢?为了帮助大家获得更好的 offer,lucifer 开辟了春招冲冲冲栏目。
今天我们的猎物是钉钉和腾讯。来看看这两家的算法题难度几何吧!
视频地址:www.bilibili.com/video/BV1Qy…
钉钉
- 比较版本号(力扣题号 165.比较版本号)
一次遍历即可,唯一需要注意的是补全再比较(逻辑补全即可,并不一定需要物理上真的去补全),时间复杂度 O(m+n),其中 m 和 n 分别为两个版本号的长度
- 随机字符串生成(随机生成一个长度为 8 的字符串,要求只能是小写字母和数字,字母和数字可重复,但是生成的随机字符串不能重复)
随机生成一个长度为 8 的字符并将其存到哈希表中,下次生成后判断是否已经在哈希表中了。如果存在,说明之前生成过了,继续生成。注意这种算法存在一直拒绝的可能,代码会无限循环。
- 日志上报(实现效果:没有数据不上报,有数据每 100ms 批量上报一次)
维护一个窗口,当窗口内有数据才触发请求批量上传,一个窗口的长度为 100m(可能大于) 内的所有请求
腾讯
- 字符串反转
头尾双指针,不断交换两个指针的字符即可。
- 链表的倒数第 k 个数
快慢双指针典型题目。
- 设计求一个数的 n 次开方
典型的二分题目,不会的建议看下我的二分讲义。我的刷题仓库或者公众号搜 二分 就行。
- LRU 算法
稍微有点难度了,这个题很常见,难度不小,建议刷。我之前写过题解了,直接甩给大家吧 146. LRU 缓存机制
- 手撕一下,就是一个小车给定坐标位置,和当前面朝方向(NSWE),再输入前进转向情况和前进步数,输出小车的坐标位置和面朝方向。
没啥难度,直接模拟。
- 链表相加
链表和数组本质没有不同,只是具体操作不一样。因此掌握链表基本操作就行了。链表基本操作有哪些?需要注意什么?我的链表专题都给大家总结好了,建议阅读。
- leetcode 1567 乘积为正数的最长子数组长度。
题目是:给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。请你返回乘积为正数的最长子数组长度。
这道题是求连续的乘积为正数的最长子数组长度。这里需要一个小学知识,两个符号相同的相乘为正数,两个符号不同的数相乘为负数(先不考虑 0)。 于是直接使用一维 DP + 一层循环即可。
定义状态 positive[i] 为 nums[i] 结尾的乘积为正数的最长子数组长度,negative[i] 为 nums[i] 结尾的乘积为负数的最长子数组长度,于是答案就是 max(positive)。
接下来,遍历 nums,对 nums[i] 的不同取值分类讨论即可:
- nums[i] > 0
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!