Skip to content

zyune/Leetcode_solution

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Leetcode_solution

This is Yune's Leetcode repo. I build this repo to help cs and cs align students in northeastern university to better crack leetcode solution. Some of the code is still navie and perhaps not the best way. I still have a long path to walk ahead. But The repo implement a template idea. There are currently 80 more leetcode solution in the repo.

All the code here is according to labuladong, but a python version. If you were a labuladong reader , but you prefer to use python as your weapon on leetcode. You are in the right battle field.

I build this repo initially in this organization, If you want to check some template written in python. Go to issue tab . If you want to check the solution of certain leetcode question, just click on solution.

Rule No.1

  • Don't be a coward before algorithem problems. Show me your gut, and let's fuck algorithem.

output

Rule No.2

  • Talk is cheap, Code is valuable. So Shut The Fuck Up. 《话越多越菜》

output

复习 第一轮()

复习的第一个周期(3 天)实际用时 4 天

single linked list

反转 single linked list

回文串 |<—— left right ——>|

binary |left——> <——right|

double pointer 双指针

slidng window(典型快慢指针,快慢中间就是所谓的窗口),用于结局子串问题

Nsum 这玩意就得背熟,尤其里面那个 NsumTarget(nums,n,start,target)函数,是真的难打

前缀和/积 rangeSum。 本质是用一个新数组 preSum 来存储元数组的累加和或者累加积,以使得算法的时间复杂度打到 O(1),when we creating the presum array, the length of row or column is always 1 bigger than the original one

差分数组 difference array

复习的第二轮 (费城回来以后)

二叉搜索树(BST)

  • 对于 BST 的每一个节点 node,左子树节点的值都比 node 的值要小,右子树节点的值都比 node 的值大。
  • 对于 BST 的每一个节点 node,它的左侧子树和右侧子树都是 BST。
  • BST 中序遍历就是升序排序结果」这个性质,每次寻找第 k 小的元素都要中序遍历一次,最坏的时间复杂度是 O(N)

二叉搜索树_特性篇 下面三题都是中序

二叉搜索树_基操篇 判断 BST 的合法性、增、删、查。其中「删」和「判断合法性」略微复杂

  • unique-binary-search-trees-ii Solution 结合 后序 二叉树(子问题的思路) 动态规划 memo 的 base case。子问题的思路
  • 1 穷举 root 节点的所有可能。2、递归构造出左右子树的所有合法 BST。 3、给 root 节点穷举所有左右子树的组合。
  • unique-binary-search-trees Solution 这一题的本质是特殊的动态规划 memorization(一开始我以为是回溯,但不是)

二叉树

  • flatten-binary-tree-to-linked-list Solution (分解问题)1、将 root 的左子树和右子树拉平。 2、将 root 的右子树接到左子树下方,然后将整个左子树作为右子树(虽然没有 return value 但仍然属于分解问题)
  • populating-next-right-pointers-in-each-node Solution (遍历)这题用到完美二叉树,用 traverse 但是参数定义不一样,很有意思。同样执行转换的位置在前序或者后序都不影响
  • invert-binary-tree Solution (遍历)这题的左右子树转换的代码位置在后序或者前序 并不影响结果(利用第一种遍历思路)

二叉树_构造 基本构造都用分解问题

暴力穷举

backtracking 回溯

回溯算法解题套路框架

经典回溯算法:集合划分问题

回溯算法秒杀所有排列/组合/子集问题

回溯算法最佳实践:括号生成

islands (岛屿 也就是 flood fill)

Graph

section_name

DP

一维

二维

memorization

Test for donald

About

Fuck leetcode

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 80.4%
  • Python 18.5%
  • Other 1.1%