diff --git a/Interview-Notebook b/Interview-Notebook new file mode 160000 index 0000000000000000000000000000000000000000..3e35079cf9b79b8cc1d577d886aa6abc58793600 --- /dev/null +++ b/Interview-Notebook @@ -0,0 +1 @@ +Subproject commit 3e35079cf9b79b8cc1d577d886aa6abc58793600 diff --git "a/other/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204.md" "b/other/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..3f0362f60352dd66b4d560d6927b32f0f10b31be --- /dev/null +++ "b/other/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204.md" @@ -0,0 +1,158 @@ +# Algorithm +leetcode/lintcode上的算法题 + +**关于问题的答案和解体的思路,可以移步我的github: https://github.com/zhaozhengcoder/Algorithm** + +### About + + 这个仓库最初的想法是把lintcode/lintocde上面的算法题目整理一下,因为很多题目太多了显得太乱了,就不继续在GitHub上面写了,以前写的一部分移到我的博客上面了。 + GitHub上面打算整理一些比较典型 或者是 自己思考过的觉得很好的问题。 + + + 在博客上面开了两个专栏 + + 1. 数据结构/算法导论 : + https://www.jianshu.com/nb/12397278 + + 2. OJ练习题 : + https://www.jianshu.com/nb/9973135 + + 推荐两篇自己对 递归搜索和动态规划 的理解的blog : + + 1. https://www.jianshu.com/p/5eb4da919efe + + 2. https://www.jianshu.com/p/6b3a2304f63f + + + +### 题目的索引 + GITHUB上面打算整理一些比较典型 或者是 自己思考过的觉得很好的问题。 + + 1.从数据结构的角度索引 : + + a. 数组 + + 两数之和 + + 连续最大子数组 + + 乘积最大子数组 + + 买卖股票的最佳时机1,2,3 + + 买卖股票的最佳时机1:寻找数组里面的最大上升子序列 + 买卖股票的最佳时机2:寻找数组里面所有的上升子序列 + 买卖股票的最佳时机3:寻找数组里面两个不重合的上升子序列,并且使他们的和最大 to-do + + 区间合并(将有交集的区间合并) + + 寻找缺失的数 + + 1. 一个顺序的数组[1,2,3,5,6],缺少了一个数字,如何找到它? + + 2. 一个arr的数组,只有一个数字出现了一次,其他都出现了两次,如何找到它? + + 数组的近似划分(将一个数组分成两个,但是差最小) + + 数组里面第k大的数 + + 跳跃游戏1,2 + + 跳跃游戏1: + 给出一个非负整数数组,你最初定位在数组的第一个位置, + 数组中的每个元素代表你在那个位置可以跳跃的最大长度, + 返回 是否能到达数组的最后一个位置 + + 跳跃游戏2: + 给出一个非负整数数组,你最初定位在数组的第一个位置, + 数组中的每个元素代表你在那个位置可以跳跃的最大长度,    + 返回 使用最少的跳跃次数到达数组的最后一个位置 + + a+. 二维矩阵 + + 顺时针打印二维矩阵 + + 给出一个二维矩阵,找到一个路径(从某个左上角到某个角右下)使这条路径的值最大 + + b. 链表 + + c. 字符串 + + 最长公共子序列(并不是连续的) + + 最长回文子串 + + d. 二叉树 + + 返回一个平衡二叉树的第k大的节点 + + 二叉树的最低公共祖先 + + 非递归遍历二叉树 + + e. 图 + + 最短路径 + + 深度/广度优先遍历 + + 2. 从算法的角度建立索引 : + + a. 递归搜索问题 + + N后问题 + + 全排列 + + 组合问题1,2 + + b. 动态规划 + + 背包问题1,2 + + 数组的近似划分(将一个数组分成两个,但是差最小) + + 跳跃游戏1,2 + + 给出一个二维矩阵,找到一个路径(从某个左上角到某个角右下)使这条路径的值最大 + + + 3. 常用 + + a. 排列/组合 + + b. 深度优先遍历 + + c. 最短路径 + + 4. 智力题(算法本身很简单,就是想不到的那种) + + 最多有多少个点在同一条直线上 + + +### Others + + 1. 类似于系统设计的题目 + + 带最小值的栈/队列 + + url长链接转短链接 + + 2. 解决特定问题 + + 并查集 + + 布隆过滤器 + + + +如果你对机器学习的算法感兴趣,欢迎共同讨论: + +https://github.com/zhaozhengcoder/Machine-Learning + + +### Flag + +刷到200题吧~ + +![](1.PNG) \ No newline at end of file