Draymonder
Draymonder
```js // 时间戳转换时间方法 function time(timestamp) { var date; if (!timestamp) date = new Date(); else date = new Date(timestamp + 8 * 3600 * 1000); return date.toJSON().substr(0, 19).replace('T', ' ');...
这里的`trips`是个`[[0,1,2], [0,1,3]]`的数据 按照第三维升序,第二维降序 ```python3 trips.sort(key=lambda x : (x[2], -x[1])) ```
偶尔碰到的问题
- 给定一个数组,找到两个不相交且连续的子数组A和B,A中的数字和为sum(A), B中的元素和为sum(B), 求sum(A) - sum(B) 绝对值的最大值。 - solution ``` left1[i] 表示以i为结尾的最大字段和,left2[i] 表示以i为结尾的最小字段和 right1[i] 表示以i为首的最大字段和,right2[i] 表示以i为首的最小字段和 然后就 4种组合求差的绝对值 ```
// 双指针模板 ```cpp // 区间[l, r]的信息 unordered_map mp; int cnt = 0; int l = 0; int sz = INF; for (int r=0; r sz) { sz = r -...
leetcode 1457 和 113 都是类似的套路 ```cpp // 题目要求不能遍历到空节点,可以用此模板,treePath为一条根到叶子节点的路径 void dfs(TreeNode* rt, vector treePath) { treePath.push_back(rt); if (!rt->left && !rt->right) { // 看treePath是否题目满足情况, 这里不返回,因为还要pop_back check(treePath); } if (rt->left) dfs(rt->left, treePath); if...
老年选手留下了菜菜的眼泪 ```cpp const int N = 1e5 + 10; // 2^20 = 1e6 是能cover的 // dp[i][j] 表示 以i为区间起点,2^j为区间长度,所计算的值 int dp[N][19]; int Log[N]; void init(vector & arr) { memset(dp, 0, sizeof(dp));...
# 枚举子集 有一个数,比如5, 二进制表示为 `101` 子集有 ``` 101 -> 5 100 -> 4 1 -> 1 ``` # code ```cpp void enumerate_sub_collection(int x) { for (int t=x; t; t=(t-1)&x) {...