rokevin
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
  • 刷题

  • lintcode
    • 解题法
      • 双指针法
      • 滑动窗口算法 sliding window algorithm
      • LeetCode按照怎样的顺序来刷题比较好?
      • 指针类算法
      • 什么是「滑动窗口算法」(sliding window algorithm),有哪些应用场景?
      • 秒杀算法面试必须掌握的14种模式
    • 算法策略侧重的问题类型
  • 数据结构和算法
    • 电话面试网站
    • 白板面试 Onsite(当场)
    • 硅谷工作
    • 学习方法
    • 切题四件套
    • 练习
    • 数组
    • 链表
  • 算法为王
  • 架构师的信仰系列文章
  • OI/ACM
  • 在OI中,有哪些看似没大碍,却很致命的错误?
  • ACM 的正确入门方式是什么?
  • 给定范围中求有几个数
  • 构建 预处理结构
  • 等概率输出一组数,求输出另组数

刷题

算法小白如何高效、快速刷leetcode? 刷多少题? 大厂需要刷哪些题?3.具体怎么刷? https://www.zhihu.com/question/321738058/answer/1252502958

lintcode

https://www.lintcode.com/problem/?utm_source=sc-zhihu-lm0527

解题法

双指针法

左右指针 快慢指针

滑动窗口

滑动窗口算法 sliding window algorithm

判断两个字符串是否是异构同质,异构同质的定义如下:一个字符串的字符,重新排列后变成另外一个字符串。

LeetCode按照怎样的顺序来刷题比较好?

https://zhuanlan.zhihu.com/p/104983442

指针类算法

  1. 左右指针
  2. 快慢指针

https://blog.csdn.net/xxdddail/article/details/93735314

什么是「滑动窗口算法」(sliding window algorithm),有哪些应用场景?

https://www.zhihu.com/question/314669016

LeetCode按照怎样的顺序来刷题比较好?

LeetCode按照怎样的顺序来刷题比较好?

什么是「滑动窗口算法」(sliding window algorithm),有哪些应用场景?

别再埋头刷LeetCode之:北美算法面试的题目分类,按类型和规律刷题,事半功倍

算法篇目录汇总

常见算法之排序算法简单描述

labuladong的算法小抄

算法策略的总结

labuladong的算法小抄

labuladong的算法小抄GitHub

算法篇目录汇总

https://darktiantian.github.io/%E7%AE%97%E6%B3%95%E7%AF%87%E7%9B%AE%E5%BD%95%E6%B1%87%E6%80%BB/

labuladong的算法小抄

https://labuladong.gitbook.io/algo/

动态规划及面试,学完这一篇,你就入门了:Dynamic Programming, 动态规划,经典题目

https://zhuanlan.zhihu.com/p/89391817

LeetCode按照怎样的顺序来刷题比较好?

https://www.zhihu.com/question/36738189/answer/908664455

双指针技巧汇总 https://blog.csdn.net/xxdddail/article/details/93735314

带答案面经分享-面试中最常考的树模型! https://www.lizenghai.com/archives/5816.html

秒杀算法面试必须掌握的14种模式

https://zhuanlan.zhihu.com/p/90664857

https://www.educative.io/courses/grokking-the-coding-interview?aff=K7qB

https://github.com/Huixxi/Algorithm-with-Cplusplus/tree/master/莱特扣的-系列/15.Pattern:%20Topological%20Sort%20(Graph)

1. 滑动窗口 Sliding Window
https://www.cxyxiaowu.com/672.html

2. 双指针 Two Pointers

3. 快慢指针 Fast & Slow pointers

4. 区间合并 Merge Intervals

5. 循环排序 Cyclic Sort

6. 原地反转链表 In-place Reversal of a LinkedList

7. 树上的BFS Tree Breadth First Search

8. 树上的DFS Tree Depth First Search

9. 双堆 Two Heaps

10. 子集 Subsets

11. 变种二分 Modified Binary Search

12. Bitwise XOR

13. 最大前K个元素 Top 'K' Elements

14. K-路归并 K-way merge

15. 0/1 Knapsack (Dynamic Programming)

16. 拓扑排序 Topological Sort (Graph)

17. Kth Smallest Number (hard)

https://wdxtub.com/interview/14520606002338.html

补充:

并查集

单调栈

字典树

rolling hash


算法策略侧重的问题类型

一般常遇到的问题分为四类

  1. 判定性问题:可用递推法、递归法

  2. 计算问题:可用递推法、递归法

  3. 最优化问题:贪心算法、分治法、动态规划法、枚举法

  4. 构造性问题:贪心算法、分治法、广度优先搜索、深度优先搜索

数据结构和算法

编程的内功

电话面试网站

collabedit.com

coderpad.io

白板面试 Onsite(当场)

硅谷工作

  1. 留学 F1 2. 外企中国 美国总部 L1 3. 直接硅谷公司 Offer H-1B

学习方法

  1. chunk it up (切碎知识点)

  2. deliberate practicing (刻意练习)

  3. feedback 即时反馈 主动反馈:自己去找 高手代码(github leetcode主动练习) 被动反馈:高手给你指点 code review

outliers 异类:不一样的成功启示录

切题四件套

  1. Clarification 明确题目意思

  2. Possible solutions 多列出解 用最优的

    compare(time/space) optimal(加强)

  3. Coding(多写)

  4. Test cases 加上测试案例

Big O notation

时间复杂度

空间复杂度

斐波拉契数列(递归)

master theorem 主定律 和递归相关

练习

leetcode

数组

access O(1) 根据下表直接找到元素

insert 平均O(n) 插入后,后面的元素都要往后挪动

delete 平均O(n) 删除后,后面的元素都要往前挪动

链表

access O(n) 从头指针查到指定位置

insert 平均O(1) 待插入的元素next指向插入位置的元素,把插入位置的元素的前一个元素的next指向待插入的元素

delete 平均O(1) 待删除元素的前一个元素的指针直接指向待删除元素的next元素

单链表

双链表

https://www.bigocheatsheet.com/

递归 recursion

分治 divide & conquer

求众数 majority element

贪心算法 greedy 有很大局限性 在股票买卖问题中 需无限次交易 无手续费

广度优先算法 BFS breadth first search 地毯式搜索

深度优先算法 DFS depth first search

剪枝

N皇后问题

数独问题

二分查找

  1. sorted (单调递增或者递减) 数组必须有序
  2. bounded 存在上下界
  3. accessible by index 能够通过索引访问 数组适合二分查找 链表不适合

求平方根

  1. 二分法
  2. 牛顿迭代法

https://www.zhihu.com/question/20690553?sort=created

https://leetcode.com/problems/sqrtx

https://www.beyond3d.com/content/articles/8/

https://leetcode.com/problems/valid-perfact-square/

位运算 二进制位运算

异或 相同为0 不相同为1

x ^ 0 = x

x = x & (x-1) 清零最低位的1

x & -x 得到最低位的1

复杂的位运算操作

hamming weight 统计位1的个数

位运算解决N皇后问题

计算路径 count the paths

动态规划 dynamic programming 动态递推 programming就是递推的意思 自低向上

  1. 递推 (递归+记忆化)
  2. 状态的定义:
  3. 状态转移方程
  4. 最有子结构

DP VS 回溯(递归) VS 贪心


LRU cache 缓存 least recently used 最近最少使用

LFU


bloom filter 布隆过滤器 高并发 分布式

Map-Reduce


priority queue 一个任务的密度 = 重要程度/完成时间

kelly formula 凯利公式

game theory 博弈论


五个代码模板

  1. 递归

终止条件

处理数据

递归

还原条件

  1. DFS 递归写法

BFS

  1. 二分查找

  2. dp

状态定义

dp状态的推导

  1. 位运算

vim with python support

算法为王

http://blog.fens.me/series-algorithm/

架构师的信仰系列文章

http://blog.fens.me/series-architect/

OI/ACM

https://www.zhihu.com/collection/276899140

在OI中,有哪些看似没大碍,却很致命的错误?

https://www.zhihu.com/question/269419727

ACM 的正确入门方式是什么?

https://www.zhihu.com/question/517275j16

运筹学和理论计算机科学

bilibili 妈咪说和遇见数学

计算引论

做题总结

给定范围中求有几个数

2到6返回中在数组中有几个
[0,4,5,7,8,11]

可以二分
< 2 a个
< 7 b个

b-a 的个数就是2-6范围内有几个数

构建 预处理结构

1 2 3 4 5 1 3 6 10 15 前缀和数组

等概率输出一组数,求输出另组数

判断基偶,从中间分,开头或者结尾返回0或者1,中间多出来的就重新随机 用0或者1,表示目标输出数。

最近更新:: 2025/10/22 15:36
Contributors: luokaiwen