快速拿下面试算法

快速拿下面试算法

在面试前一周,我刷了很多道算法,分类刷,有些是做过的,因为我是面试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

为了拒绝白嫖,我自己写的代码获取方式,可私聊我微信(没加的,点击公众号右下角联系我)并支付9.9红包发你。

你可能感兴趣的:(算法,面试,数据结构,快速排序,排序算法)