- 无重复字符的最长子串
- 最长回文子串
- 删除链表的倒数第N个节点
- 有效的括号
- 移除元素
// 边界判空size() == 0 - 下一个排列
// 解题思路处理顺序 - 旋转图像
- 合并区间
// 自定义排序 sort(vec.begin(), vec.end(), [](vector &x, vector &y) { return x[0] < y[0]; }); - 删除排序链表中的重复元素 II
// vector.front(); .back(); .pop_back(); .insert(iterator it,const T& x); .assign(int n,const T& x);
// 链表伪头指针减少头指针处理的特殊场景 - 反转链表 II
// 通过构造顺序输入debug辅助判断边界 - 二叉树的层次遍历
// 层序遍历layer++和while(layerSize–)比pair.second记录层关系效率高三倍
// 判断当前层结果vector<vector> result是否初始化:result.size() < layer
// 复制粘贴变量检查 - 路径总和 II
// 深搜裁枝的时候注意用例正负数字,不要裁错丢解了 - 翻转字符串里的单词
// std::reverse(str.begin(), str.end());
// str.substr(pos, len); len的默认值是s.size() - pos - 岛屿数量
// 二位数组初始化 vector<vector> mark(grid.size(), vector(grid[0].size(), 0));
// 拷贝粘贴变量修改,仔细检查每一个变量的含义
// 方向数组 int x[4] = {0,0,-1,1};
// 广搜要注意入队列时的状态,尽量入队列之前修改状态,避免出队列置状态队列已经有很多重复状态,导致爆队超时 - 数组中的第K个最大元素
// struct MyCmp { bool operator()(int &a, int &b){return a > b;}}; priority_queue<int, vector, myCmp> q; - 存在重复元素 III
// 考虑类型超出用大类型做加减比较
// set求v上下界s.lower_bound(x>=v); s.upper_bound(x>v)
// 尾巴不包含 vector maxWindow(nums.begin(), nums.begin() + winLen - 1);
// sort(vec.rbegin(), vec.rend());
// 问题转化,区间内查找符合条件若干元素,转换为区间内查找单元素是否符合转化后的条件。将区间元素遍历O(n^2)转换为线性元素遍历O(n)
// 审题细节,代码循环,边界,continue/break/;细节 - 基本计算器
// long类型累加int
// 抽取方法,栈调用超出时间限制 - 去除重复字母
// 单调栈
// 编码速度
// 模拟工具
// 多个循环判断相互影响的逻辑要谨慎 - 查找和最小的K对数字
- 摆动排序 II
// 算法设计 - 前 K 个高频元素
- 替换后的最长重复字符
// 最大最小长度条件及时裁枝降低一半时间
// vector::iterator maxIter = std::max_element(vec.begin(), vec.end());
// 三种字符容器计算效率差异不大:map<char, int> countMap; char countMap[256] = {0}; vector countMap(26,0); - 字符串的排列
// char map1[256] = {0}; - 寻找重复的子树
// 递归序列化+map查找 - 划分为k个相等的子集
- 打开转盘锁
// 最短路径层序搜索进入队列就要设置待处理状态,访问再置已处理状态队列会有很对重复的待处理,导致重复搜索超时
// 优先队列破坏了层序从大到小的顺序,比较函第一优先级是层序,第二优先级才是距离等优先级,如果取最短距离可以在q.push的时候判断相同节点更短layer已经在队列,则当前更长的相同节点丢弃。
// 符合数据定义struct+构造方法,新增struct类型比较方法 - 完全二叉树插入器
// 先序遍历打印每一个节点vLR值调试分析 - 最大层内元素和
11-15
06-23
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交