Go PZ!

Thinking will not overcome fear but action will.

Leetcode Recursion

C++

Tips: Linked list,或者Tree Search或者一层一层的推导之类的,依靠前一层的推导 的题目常用 recursion (tree 一定要用递归的思想) 首先把函数的功能定义:假想这个会返回什么 然后利用子序列函数的结果进行处理,获得现在序列的函数结果。 双重 recursion 假设两个recursion,一个返回所有可能的; 一个返回当前节点是起点的可能性。 Le...

Leetcode Linked Lists

C++

Tips: linked list排序 想到 while 以及 priority_queue 利用 双指针,一个走一步,一个走两步,去获得linked list 的中间指针 (比如用来isPalindrome) ListNode* slow = head; ListNode* fast = head; while(fast && fast ->...

Leetcode DFS BFS

C++

copyrighted @ Peng Zheng Some Slides with copyright @ Huahua Search with DFS and BFS Graph with DFS and BFS

Leetcode Binary Search & Divide and Conquer

C++

Template寻找最小的值满足 g(m)—二分核心思想 — 记住 Leetcode 35 Search Insert Position int m = 0 out of the while loop save more memory usage 二分法总结 https://www.cnblogs.com/grandyang/p/6854825.h...

Leetcode Trees

C++

KEY Points: Traversal – Recursion –> function order –> save memory of run-time stack :rofl: 主要解决方法: recursion + recursion !!!! 当BFS的时候,可以queue或者两个vector,然后swap :speech_balloon: ...

Leetcode General

C++

不要在一行写判断函数 如下面:会出错!!!! if(needle[k] != haystack[j-nSize+1+k]) allSame = false; break; Sort 通常能做到 NlogN 如果time exceed,可以尝试先sort,再做处理 超时的时候都想着把重要步骤时间复杂度降低 比如改用Map Find 而不是 Vector Count • 通常提到O(1)...

Leetcode DP

C++

Summary 多状态之间得关系,注意初始条件 DP[i][j] iterate i or j can be reverted 可以反着来,可能更方便 滚动数组把循环几轮放在最开始的循环 nested cycles DP 分成片段 [a,b] 应对复杂的DP问题 学会额外增加一行一列, 作为初始值,方便计算,0,0 ...

Leetcode Array

C++

array 连续值 array 双指针 array 排序去除 array 从两边夹向中间 product of array except self array 从中间向两边散开 Longest - Palindromic Substring array也可以倒着考虑,从后往前 –》 merge sorted aray Sliding windows: 固定一个增...

C++ STL functions

C++

Map // empty map container     map<int, int> gquiz1;        // insert elements in random order     gquiz1.insert(pair<int, int>(1, 40)); gquiz1.insert({1,40}); // print...

Learning Python

layout: post title: Learning Python subtitle: Gatech date: 2020-01-19 author: BY PZ header-img: img/post-bg-2015.jpg ca...