Algorithm

曾经父亲对我说,你的人生可以选择,世界的一切也要接受,但你的内心不能改变。于是我学会了不去选择而去接受,在尚且年幼的时光里,我把它叫做世界或者是天地,而在经历世事蜕变之后,当那些艰难让自己变得坚不可摧之后,我叫它——人间。所谓的人间烟火,就是这样一个可以时而温暖时而冷漠的词语,所谓的人间,就是这样时而光明时而黑暗的时刻。它们附着在我们身体的周围,缱绻而来。

《不喧哗,自有声》

Leetcode

Content Comment
Leetcode-001 数组,先排序,避免嵌套循环
Leetcode-002 两个链表,先判断一下链表长度
Leetcode-003 最长字串,出现过的字母用字符数组标记,巧妙!
Leetcode-006 这就是个找规律的题………………
Leetcode-007 int的reverse,先把类型设置为long是精髓
Leetcode-008 字符串中int,精髓是对Integer两头overflow的判断
Leetcode-009 判断回文,我根本不知道那个extra space啥意思
Leetcode-011 双指针,从两头开始走。双指针印象深刻,应用场景很多哦
Leetcode-013 双指针,罗马数字转换int
Leetcode-014 longest_common_prefix, 先找最短的字符串,再一个一个校验就好了
Leetcode-015 数组,双指针法,求三个数字和 3 sum
Leetcode-017 BackTracking,电话号码盘,给一串数字,给出所有字母组合
Leetcode-019 链表!仍然是双指针,更具体是快慢指针
Leetcode-020 栈!没别的了!
Leetcode-021 链表,链表合并
Leetcode-022 递归,generate_parentheses
Leetcode-024 交换链表中相邻节点,链表还是很容易搞乱的
Leetcode-026 数组,去掉有序数组中的重复的数,又是一道思想上很巧妙地题目
Leetcode-027 数组,把给定的数字在数组中去掉,和26题很像
Leetcode-028 数组,判断存不存在字串,有很多算法
Leetcode-033 数组,二叉查找的变种
Leetcode-035 数组,返回目标数字在有序数组中的位置,或者下一个插入的位置,二叉查找
Leetcode-038 一个数列题,题目给的不是人话
Leetcode-039 Backtracking,DFS,Combination Sum ,可以重复使用元素
Leetcode-040 Backtracking,DFS,Combination Sum II,不能重复使用元素
Leetcode-043 字符串,给定两个字符串,求积
Leetcode-046 Backtracking,DFS,Permutation 无重复
Leetcode-047 Backtracking,DFS,PermutationII 有重复
Leetcode-049 HashMap,把anagram分组
Leetcode-053 动态规划,求一个数组中,和最长的子数组
Leetcode-058 数组,返回最后一个单词的长度,都这么简单就好了
Leetcode-061 链表,移动链表k个位置
Leetcode-062 二维数组求路径可能性,动态规划的题
Leetcode-063 二维数组求路径可能性,动态规划的题,加了一些障碍
Leetcode-064 二维数组求最短路,动态规划的题,和62一样
Leetcode-066 数组,一个数字存在数组中,然后要加1
Leetcode-067 数组,两个数组,二进制相加
Leetcode-070 数上楼梯的方法(递归vs动态规划)
Leetcode-071 栈,字符转,简化路径
Leetcode-073 栈,字符转,简化路径
Leetcode-075 排序,快速排序的思想
Leetcode-077 回溯,DFS,反正又是某种排列组合
Leetcode-078 Backtrack,求所有子集,无重复元素
Leetcode-079 回溯,DFS,Wordsearh带返回值的回溯
Leetcode-080 排序,有序数组去重II,允许数字出现两次
Leetcode-083 链表去重
Leetcode-088 数组,合并有序数组
Leetcode-090 Backtrack,求所有子集,有重复元素
Leetcode-091 动态规划,给定一个数字字符串,解码成字母字符串
Leetcode-093 Backtrack,求所有IP地址的可能情况
Leetcode-094 二叉树,递归,迭代,Morris遍历
Leetcode-095 动态规划,求所有可能的搜索二叉树的情况,要把所有的结构也返回出来
Leetcode-096 动态规划,求所有可能的搜索二叉树的情况
Leetcode-098 二叉搜索树,判断是不是二叉搜索树,也就是从小到大遍历
Leetcode-100 二叉树,递归判断二叉树是否相等
Leetcode-101 二叉树,递归判断是否对称
Leetcode-102 二叉树,层次遍历,队列
Leetcode-103 二叉树,zig-zag层次遍历,队列
Leetcode-104 二叉树,递归,求深度
Leetcode-105 二叉树,根绝先序遍历结果和中序遍历结果,构造二叉树
Leetcode-106 二叉树,根绝后序遍历结果和中序遍历结果,构造二叉树
Leetcode-107 二叉树,自下而上层次遍历,队列,第102题的 List 只要 reverse 一下
Leetcode-108 二叉查找树,将有序数组转化为平衡二叉查找树
Leetcode-109 二叉查找树,将有序链表转化为平衡二叉查找树
Leetcode-110 二叉树,递归,平衡二叉树
Leetcode-111 二叉树,到最近的叶子节点的距离,递归也可,非递归也可(层次遍历的思路)
Leetcode-112 二叉树,路径上值的和等于给定值,递归也可,非递归也可(层次遍历的思路)
Leetcode-114 二叉树,flatten二叉树,先序遍历
Leetcode-116 二叉树,指定next节点,这里的二叉树是满二叉树
Leetcode-117 二叉树,指定next节点,这里是任意二叉树
Leetcode-118 杨辉三角,帕斯卡三角,没什么好说
Leetcode-119 杨辉三角,帕斯卡三角,上一题的改进
Leetcode-121 动态规划法,求股票买入卖出最佳时间
Leetcode-122 动态规划法,求股票买入卖出最佳时间,可以发生多笔交易
Leetcode-123 动态规划法,求股票买入卖出最佳时间,最多发生两笔交易
Leetcode-125 回文,只留下字母数字
Leetcode-129 二叉树,DFS,求所有路径的和
Leetcode-130 Surrounded Regions, BFS
Leetcode-131 字符串的backtracking,DFS,求一个字符串的所有可能的回文组合方式
Leetcode-136 位运算,异或,一个数组中只有一个数字只出现一次 【会玩】
Leetcode-139 动态规划,word_break
Leetcode-141 链表,快慢指针判断是否有循环
Leetcode-142 链表,快慢指针判断是否有循环,并且找出循环开始的点
Leetcode-144 二叉树,前序遍历,看summary好了
Leetcode-146 设计题,LRU_Cache,设计缓存结构
Leetcode-147 排序,链表,链表的插入排序,两个链表
Leetcode-148 链表,排序,链表的归并排序, O(n logn)
Leetcode-150 栈stack,token数组用栈来确定计算顺序
Leetcode-153 二分查找,找一个rotate过的有序数组的最小数
Leetcode-155 Min Stack
Leetcode-160 链表,找两个链表的相交处
Leetcode-165 字符串,判断两个版本号的大小
Leetcode-167 数组,有序数组的Two_Sum,简单版的Two sum
Leetcode-168 Excel Sheet Column Title
Leetcode-169 数组,求超过数组大小一半的元素,摩尔投票法算法【巧妙】!!!
Leetcode-171 Excel Sheet Column Number
Leetcode-173 二叉查找树,用stack,二叉查找树的精髓啊
Leetcode-179 排序,将数组中的数,组成一个最大的数,Arrays.sort
Leetcode-187 Map,找出现过两次以上的且长度大于10的子字符串
Leetcode-189 数组,rotate,方法很【巧妙】!
Leetcode-198 动态规划,与数阶梯的思路相同
Leetcode-199 二叉树,右视图,层次遍历
Leetcode-200 DFS,BFS,二维字符数字,数岛屿
Leetcode-202 求happy_number
Leetcode-203 链表,快慢指针,移除指定数字的节点
Leetcode-205 HashMa,同构字符串
Leetcode-206 链表,反转单链表,用到连续三个节点的指针,在每次循环三个指针的归位
Leetcode-216 Backtracking,DFS,Combination Sum III
Leetcode-217 数组,ContainsDuplicate,判断,一个整形数组里有木有重复的数字
Leetcode-219 数组,ContainsDuplicateII,判断数组间隔k内里有木有重复的数字
Leetcode-223 重合的长方形,其实也是排序,或者说比较
Leetcode-225 栈,用两个queue实现stack的功能
Leetcode-226 二叉树,交换左右子树,递归和非递归两种解法
Leetcode-228 数组,Summary_Ranges
Leetcode-230 BST,求BST中第k小的值
Leetcode-231 判断是否是2的幂
Leetcode-232 栈,用两个stack实现queue的功能
Leetcode-234 二叉树,判断二叉树是不是 Palindrome
Leetcode-235 二叉查找树,Lowest Common Ancestor
Leetcode-236 二叉树,Lowest Common Ancestor
Leetcode-237 链表,给出当前节点,把自己链表中删去,覆盖的思想,无聊
Leetcode-241 Different Ways to Add Parentheses
Leetcode-242 数组,验证变位词,仍然是用数组来标记出现过的字符,没什么新花样
Leetcode-252 排序,用Arrays.sort,并且新建一个Comparator
Leetcode-257 二叉树,求所有二叉树的路径,递归,神奇的递归
Leetcode-258 用公式求数根
Leetcode-263 判断丑数,递归或者非递归
Leetcode-266 字符串,判断是否可为回文,用了003题的方法
Leetcode-268 数组,寻找 0-n 中间没有出现的那个数
Leetcode-270 二叉查找树,找与给定值最接近的节点
Leetcode-274 排序,快速排序,计算H指数
Leetcode-276 动态规划,数篱笆涂色数方法
Leetcode-278 二分查找,找第一个BadVersion
Leetcode-280 排序,摆动排序
Leetcode-283 数组,把零移到后面,前后指针,两种思路
Leetcode-288 哈希表,哈希set,题目讲的不清不楚的,不喜欢这种题目
Leetcode-290 Map,WordPattern
Leetcode-292 找规律,尼姆游戏,只要石子总数为4先手必败
Leetcode-299 Map,bullsAndCows
Leetcode-326 判断是否是3的幂
Leetcode-342 判断是否是4的幂
Leetcode-344 字符串,字符的reverse
Leetcode-345 字符串,元音交换
Leetcode-346 数组或者队列都可以解决,求固定窗口长度内的平均数
Leetcode-347 Map,对map的values排序
Leetcode-349 数组,求数组交集
Leetcode-355 Map,设计类似于twitter的系统
Leetcode-383 用一个长度为256的int数组标记
Leetcode-387 用一个长度为256的int数组标记,简直和383一模一样
Leetcode-389 数组,比较两个字符串的不同
Leetcode-394 Stack,Decode_String
Leetcode-397 递归_Integer_Replacement
Leetcode-412 Fizz_Buzz
Leetcode-414 数组,返回第三大的值,包装类的运用
Leetcode-415 字符串,两个数字字符串相加
Leetcode-434 字符串,数字符串中的单词的数量,用空格间隔
Leetcode-417 DFS,是否能流向两个大洋
Leetcode-437 二叉树,任意节点开始的PathSum,两层DFS
Leetcode-442 数组,找出数组中所有重复数,数组hash
Leetcode-447 HashMap___Number_of_Boomerangs
Leetcode-448 数组
Leetcode-459 判断一个字符串是否能由一个重复的子字符串组成
Leetcode-468 字符串,判断IP地址
Leetcode-473 DFS,backtrack,Matchsticks to Square
Leetcode-475 Heaters
Leetcode-482 License Key Formatting
Leetcode-485 Max Consecutive Ones
Leetcode-486 Predict the Winner
Leetcode-491 DFS,求一个数组的所有增序子数组
Leetcode-494 DFS,给整形数组所有元素添加符号,看能够等于target的组合方式有多少种
Leetcode-495 数组,求遭受的魔法攻击的总时长
Leetcode-496 Stack___Next_Greater_element_I
Leetcode-500 HashTable。Keyboard_Row
Leetcode-501 平衡二叉树,找众数,中序遍历
Leetcode-506 数组和Map,给出数字数组的相对位置
Leetcode-508 二叉树,求所有子二叉树的元素和,找和的众数
Leetcode-513 二叉树,DFS,找最下面一层最左边那个数
Leetcode-520 字符串,判断大小写是否合理
Leetcode-526 美丽排列的数量,DFS的思想
Leetcode-530 BST,求任意两数的最小间隔
Leetcode-532 数组,给定一个差值,返回配对数量
Leetcode-537 Complex Number Multiplication
Leetcode-538 BST,从大到小遍历。
Leetcode-539 字符串,获取一串时间的最小时间间隔
Leetcode-541 二叉树,求最长路径,递归
Leetcode-543 字符串,Reverse_String
Leetcode-557 Reverse Words in a String III
BinaryTree 二叉树基础
SortMap 对map的key value分别排序

数据库汇总

Content Comment
Leetcode-175 Combine Two Tables
Leetcode-176 Second Highest Salary
Leetcode-177 Nth Highest Salary
Leetcode-178 Rank Scores

动态规划汇总

Content Comment
Leetcode-053 动态规划,求一个数组中,和最长的子数组
Leetcode-070 数上楼梯的方法(递归vs动态规划)
Leetcode-096 动态规划,求所有可能的搜索二叉树的情况
Leetcode-121 动态规划法,求股票买入卖出最佳时间
Leetcode-122 动态规划法,求股票买入卖出最佳时间,可以发生多笔交易
Leetcode-123 动态规划法,求股票买入卖出最佳时间,最多发生两笔交易
Leetcode-139 动态规划,word_break
Leetcode-198 动态规划,与数阶梯的思路相同
Leetcode-276 动态规划,数篱笆涂色数方法




HackerRank

Content Comment
InClass3 Sort the key and value of a Map
H1P2-1 Dynamic Programming, get the Max difference in a Array




Cracking the Code interview

Content
1-1
1-2
1-3
1-5
1-6
1-7