摘要:
根据数据量猜解法 常数指令操作量 10^7 ~ 10^8,以此来猜测自己设计的算法有没有可能在规定时间内通过 消灭怪物 全排列 #include <vector> #include <iostream> using namespace std; int res; vector<pair<int, i 阅读全文
摘要:
N皇后问题 时间复杂度为 O(n!) 51. N 皇后 经典做法 #include <string> #include <iostream> #include <vector> #include <unordered_set> using namespace std; class Solution 阅读全文
摘要:
嵌套类递归 都需要一个全局变量记录当前正在处理的位置 基础计算器 III 含有嵌套的表达式求值,时间复杂度 O(n) #include <iostream> #include <string> #include <vector> using namespace std; class Solution 阅读全文
摘要:
master 公式 所有子问题规模相同的递归才能用master公式:T(n) = a * T(n / b) + O(n ^ c),a、b、c为常数 a 表示递归的次数也就是生成的子问题数,b 表示每次递归是原来的 1/b 之一个规模,O(n ^ c) 表示分解和合并所要花费的时间之和。 若 log( 阅读全文
摘要:
构建前缀信息解决子数组问题 303. 区域和检索 - 数组不可变 #include <vector> using namespace std; class NumArray { public: // 前缀和数组 vector<int> prefixSum; NumArray(vector<int> 阅读全文
摘要:
二叉树高频题(下) 236. 二叉树的最近公共祖先 using namespace std; struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(nullptr), ri 阅读全文
摘要:
二叉树高频题(上) 102. 二叉树的层序遍历 #include <vector> #include <iostream> #include <algorithm> #include <queue> using namespace std; struct TreeNode { int val; Tr 阅读全文
摘要:
链表高频题 160. 相交链表 #include <vector> #include <iostream> #include <algorithm> struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(N 阅读全文
摘要:
数据结构设计 设计有setAll功能的哈希表 加时间戳 #include <vector> #include <iostream> #include <algorithm> #include <unordered_map> using namespace std; // <key, <val, ti 阅读全文
摘要:
堆 912. 排序数组 #include <vector> using namespace std; class Solution { public: // 自上而下调整大顶堆,O(logn) void adjustHeap(vector<int> &nums, int len, int curIn 阅读全文