前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速拿下面试算法

快速拿下面试算法

作者头像
公众号guangcity
发布2020-10-10 14:25:41
5490
发布2020-10-10 14:25:41
举报
文章被收录于专栏:光城(guangcity)

快速拿下面试算法

在面试前一周,我刷了很多道算法,分类刷,有些是做过的,因为我是面试C++相关岗位,除了leetcode与剑指offer相关的算法,还需要手撕一些智能指针呀,单例模式呀、字符串呀、LRU、排序算法等等。

本节主要是以速训练算法review基础为目的,内含60+道算法,代码量及涉及算法统计如下:

Languages

language

files

code

comment

blank

total

C++

49

4,146

633

353

5,132

Directories

path

files

code

comment

blank

total

.

49

4,146

633

353

5,132

bfs_dfs

6

695

92

57

844

dp

12

533

134

54

721

dp/rob

1

30

8

4

42

dp/剪绳子

1

30

10

1

41

dp/博弈论

1

61

22

5

88

dp/戳气球

1

21

9

2

32

dp/接雨水

1

153

13

14

180

dp/最大编辑距离

1

60

10

6

76

dp/背包

5

151

53

21

225

dp/贪心

1

27

9

1

37

hash

1

135

17

14

166

link

7

196

108

19

323

recursion_backtracke

1

40

8

3

51

sliding_window

2

69

17

6

92

slidingwindow

1

230

19

15

264

sort

2

165

20

12

197

stack

1

67

9

3

79

sum问题

2

287

27

20

334

tree

3

864

80

62

1,006

二分

1

116

13

9

138

手撕算法

10

749

89

79

917

手撕算法/heap

4

277

40

39

356

手撕算法/kmp

1

46

18

4

68

手撕算法/lru

1

137

1

8

146

手撕算法/string

1

106

8

8

122

手撕算法/单例模式

2

60

14

9

83

手撕算法/智能指针

1

123

8

11

142

可以看到上述总共5k行代码,相信两周左右的时间是可以review完毕的!

具体涉及算法如下:

  • dfs 463.岛屿的周长 695.岛屿的最大面积 200.岛屿的数量 694.不同岛屿的数量 305.岛屿数量II 773. 滑动谜题
  • 链表 24. 两两交换链表中的节点 25. K 个一组翻转链表 92. 反转链表 II 160. 相交链表 2.两数之和 剑指 Offer 24. 反转链表 面试题 02.05. 链表求和
  • 动态规划
    • 背包问题 手撕0-1背包 416.分割等和子集 518.零钱兑换 II 70. 爬楼梯 322. 零钱兑换
    • 博弈论 877. 石子游戏
    • 贪心 柠檬找零
    • 其他 312. 戳气球 剑指 Offer 14- I. 剪绳子 剑指 Offer 14- II. 剪绳子 I 42.接雨水 860. 柠檬水找零 72. 编辑距离
  • 二分 排序数组,平方后,数组当中有多少不同的数字(相同算一个) 一个数据先递增再递减,找出数组不重复的个数,比如 [1, 3, 9, 1],结果为3,不能使用额外空间,复杂度o(n) 递增数组,找出和为k的数对 给出一个数组nums,一个值k,找出数组中的两个下标 i,j 使得 nums[i] + nums[j] = k
  • 滑动窗口 3.无重复字符的最长子串 字符串的排列
  • 排序 插入排序 冒泡排序 快速排序 三路快排 归并排序
  • sum问题 两数之和 三数之和 nSum 大数之和
  • 71.简化路径
  • 哈希表及Union-Find 128.最长连续序列 一个无序数组,从小到大找到第一个缺的数,比如[8 2 4 3 6 9 7 11 12],第一个缺的就是5 31.下一个排列 55.跳跃游戏 AB两个排序数组,原地合并数组。(A当中穿插一些无效数字怎么处理?)
  • 手撕二叉树操作 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 剑指 Offer 68 - II. 二叉树的最近公共祖先 337. 打家劫舍 III 100.相同的树 前中后非递归遍历及递归遍历 剑指 Offer 54. 二叉搜索树的第k大节点 222. 完全二叉树的节点个数 257. 二叉树的所有路径 129. 求根到叶子节点数字之和 最小路径和 124. 二叉树中的最大路径和 112.路径总和 113.路径总和 II 剑指 Offer 07. 重建二叉树
  • 手撕算法相关 手撕lru 手撕memcpy、strcpy、strnpy、strlen、strstr、strcat、strcmp 手撕智能指针 手撕kmp 手撕单例 手撕堆
    • 手撕两种线程安全的单例模式
    • scoped_ptr
    • autpo_ptr
    • unique_ptr
    • shared_ptr
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 快速拿下面试算法
    • Languages
      • Directories
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档