Skip to content

Instantly share code, notes, and snippets.

View lishunan246's full-sized avatar
🍥
神楽めあは世界一可愛い

复读机 lishunan246

🍥
神楽めあは世界一可愛い
View GitHub Profile
@lishunan246
lishunan246 / minDiffInBST.cpp
Created April 12, 2021 16:57
783. 二叉搜索树节点最小距离
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
@lishunan246
lishunan246 / maxDepth.cpp
Created April 11, 2021 08:09
剑指 Offer 55 - I. 二叉树的深度
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
@lishunan246
lishunan246 / nthUglyNumber.cpp
Created April 11, 2021 07:44
Ugly Number II
class Solution {
public:
int nthUglyNumber(int n) {
std::vector<int> result;
result.push_back(1);
int p2 = 0;
int p3 = 0;
int p5 = 0;
while (result.size() < n) {
int x = std::min({result[p2] * 2, result[p3] * 3, result[p5] * 5});
@lishunan246
lishunan246 / singleNumbers.cpp
Created November 12, 2020 16:01
剑指 Offer 56 - I. 数组中数字出现的次数
int lowbit(int x) {
return x & (-x);
}
class Solution {
public:
vector<int> singleNumbers(vector<int>& nums) {
int x = 0;
for (auto n : nums) {
x ^= n;
@lishunan246
lishunan246 / tmux.md
Created October 25, 2020 06:24 — forked from andreyvit/tmux.md
tmux cheatsheet

tmux cheat sheet

(C-x means ctrl+x, M-x means alt+x)

Prefix key

The default prefix is C-b. If you (or your muscle memory) prefer C-a, you need to add this to ~/.tmux.conf:

remap prefix to Control + a

@lishunan246
lishunan246 / sumOfLeftLeaves.cpp
Created August 24, 2020 16:42
Sum of Left Leaves
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
@lishunan246
lishunan246 / StreamChecker.cpp
Created August 23, 2020 16:33
1032. Stream of Characters
struct Node {
Node* children[26];
int flag;
Node() {
memset(children, 0, sizeof(children));
flag = 0;
}
};
@lishunan246
lishunan246 / sortArrayByParity.cpp
Created August 22, 2020 03:33
Sort Array By Parity
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& A) {
int back = A.size() - 1;
for (int i = 0; i < back; ++i) {
if (A[i] % 2 == 1) {
std::swap(A[back], A[i]);
back--;
i--;
}
@lishunan246
lishunan246 / distributeCandies.cpp
Created August 17, 2020 15:56
Distribute Candies to People
class Solution {
public:
vector<int> distributeCandies(int candies, int num_people) {
vector<int> v(num_people, 0);
int round = 0;
int s = (1 + num_people) * num_people / 2;
int s_all = s;
while (candies > s_all) {
round++;
s += num_people * num_people;
@lishunan246
lishunan246 / eraseOverlapIntervals.cpp
Created August 16, 2020 02:08
Non-overlapping Interval
class Solution {
public:
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
if (intervals.empty()) {
return 0;
}
sort(intervals.begin(), intervals.end(), [](auto&& a, auto&& b){
return a[1] == b[1] ? a[0] > b[0] : a[1] < b[1];
});
int left = 0;