分享|2021秋招算法总结8-哈希篇
6939
2021.01.12
2021.08.09
发布于 未知归属地

置顶科普

年份是毕业年份,2021是指2021年毕业,不是2021年面试

鲂的2021秋招算法总结目录(已完结)

1. 分享|2021秋招算法总结1-DFS篇
2. 分享|2021秋招算法总结2-BFS篇
3. 分享|2021秋招算法总结3-链表篇
4. 分享|2021秋招算法总结4-二叉树篇
5. 分享|2021秋招算法总结5-排序算法篇
6. 分享|2021秋招算法总结6-字符串篇

  1. 分享|2021秋招算法总结7-双指针篇
  2. 分享|2021秋招算法总结8-哈希篇
  3. 分享|2021秋招算法总结9-位运算
  4. 分享|2021秋招算法总结10-数组篇
  5. 分享|2021秋招算法总结11-动规篇
  6. 分享|2021秋招算法总结12-栈篇

鲂的2021秋招经验总结(不定时更新)

1. 分享|2021届毕业生秋招经验总结1-岗位类别介绍
2. 分享|2021届毕业生秋招经验总结2-如何选择offer

鲂的面经整理目录(已完结)

1. 美团金融|安卓客户端|面经|offer|2021届秋招|
2. 拼多多|客户端开发|面经|offer|2021届秋招|
3. 网易云音乐|安卓客户端|面经|offer|2021届秋招|
4. 阿里巴巴|客户端开发|面经|2021届秋招|
5. 花旗银行|软件工程师|面经|offer|2021届秋招|
6. 字节跳动|客户端开发|面经|2021届秋招|
7. 叠纸游戏|客户端开发|面经|2021届秋招|
8. 腾讯|客户端开发|面经|2021届秋招|
9. 360|安卓客户端|面经|offer|2021届秋招|
10. 作业帮|IOS客户端|面经|2021届秋招|
11. 滴滴|安卓客户端|面经|2021届秋招|
12. 百度|IOS客户端|面经|2021届秋招|
13. 快手|客户端开发|面经|2021届秋招|
14. 顺丰科技|安卓客户端|面经|offer|2021届秋招|

鲂的内推

1. 内推+校招秋招|美团金融服务平台|多项岗位|北京+上海

本篇概要

主要列举了一些可以用哈希方法(包括但不限于用HashMap和HashSet)的题目,实质上是把东西丢给这些数据结构去维护。请注意有些题目中用哈希是最优解,有些题目中不是最优解,可以自行探索其时间复杂度和空间复杂度的区别,思考优化的方法(位运算或者原地排序等)。2021秋招算法总结7-双指针篇中的x数之和/差的专题多半都可以用哈希方法。

重复元素

  1. 217. 存在重复元素:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false。
  2. 219. 存在重复元素 II:给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引i和j,使得 nums[i] = nums[j],并且i和j的差的绝对值至多为k。
  3. 220. 存在重复元素 III:在整数数组nums中,是否存在两个下标i 和j,使得nums[i]和nums[j] 的差的绝对值小于等于t,且满足i和j的差的绝对值也小于等于ķ。如果存在则返回true,不存在返回false。
  4. 287. 寻找重复数:给定一个包含n+1个整数的数组nums,其数字都在1到n之间(包括1和n),可知至少存在一个重复的整数。假设nums只有一个重复的整数,找出这个重复的数。
  5. 剑指 Offer 03. 数组中重复的数字:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

数组交集

注明:这两题除了哈希方法以外,都可以用双指针的方式。第二题的思考题可以思考下。

  1. 349. 两个数组的交集:输出结果中的每个元素一定是唯一的。
  2. 350. 两个数组的交集 II:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。思考题答案官解

数字游戏

  1. 面试题 16.15. 珠玑妙算:给定一种颜色组合solution和一个猜测guess,编写一个方法,返回猜中和伪猜中的次数answer,其中answer[0]为猜中的次数,answer[1]为伪猜中的次数。
  2. 299. 猜数字游戏:请写出一个根据秘密数字和朋友的猜测数返回提示的函数,返回字符串的格式为xAyB,x和y都是数字,A表示公牛,用B表示奶牛。
  3. 36. 有效的数独:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。
  4. 575. 分糖果:给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。
  5. 剑指 Offer 61. 扑克牌中的顺子:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为14。

缓存机制

注明:第一题是常见面试题,通常不会让你写代码(或者简写一下),但是要你说出设计的思路,所以如何将思路清晰的说出来是面试前必备的重要能力。

  1. 146. LRU 缓存机制面试题 16.25. LRU 缓存:运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。学java的同学可以试试基于LinkedHashMap的代码。
  2. 460. LFU 缓存:请你为最不经常使用(LFU)缓存算法设计并实现数据结构。

结束语

因为我本身学的是java,上面题目用的是HashMap或者HashSet,不太确定其他语言是否可以使用,大家可以自行看题解区并选择对应语言以后搜索相关解答。

评论 (0)