双指针,单指针,原地交换,用临时变量,加减法,指针交换变量。求解《剑指 Offer 21. 调整数组顺序使奇数位于偶数前面》
双指针,单指针,原地交换,用临时变量,加减法,指针交换变量。求解《剑指 Offer 21. 调整数组顺序使奇数位于偶数前面》
栈,列表(指针模拟栈),2 解法求解《946. 验证栈序列》
栈,列表(指针模拟栈),2 解法求解《946. 验证栈序列》
递归,迭代右子节点(新建递归函数 / 使用原函数),3 解法,求解《998. 最大二叉树 II》
递归,迭代右子节点(新建递归函数 / 使用原函数),3 解法,求解《998. 最大二叉树 II》
顺序遍历,用动态列表,定长列表数据结构,用双指针,单指针,位运算技巧,4 解法求解《1470. 重新排列数组》,用 python 双重循环嵌套列表完成一行解
顺序遍历,用动态列表([](push 多个 / append) / slice(append 多个) / ArrayList(add) / List(Add) / vector(push_back)),定长列表数据结构,用双指针,单指针,位运算技巧,4 解法求解《1470. 重新排列数组》,用 python 双重循环嵌套列表完成一行解。
迭代(整除 / 相除 2 解法),二分查找,传递回调函数,求解《172. 阶乘后的零》和《793. 阶乘函数后 K 个零》
迭代(整除 / 相除 2 解法),二分查找,传递函数,求解《172. 阶乘后的零》和《793. 阶乘函数后 K 个零》
广度优先搜索,深度优先搜索(前序遍历、中序遍历、后序遍历),递归、迭代(单栈、双栈和莫里斯),用减去每行起始序号技巧缩小数据范围,求解《662. 二叉树最大宽度》
广度优先搜索(队列 / 列表 + 层序遍历),深度优先搜索(前序遍历、中序遍历(包含莫里斯)、后序遍历),递归、迭代(单栈),用减去每行起始序号技巧缩小数据范围,求解《662. 二叉树最大宽度》
顺序遍历(最大值 · 第二最大值),排序 · 降序,快速选择,大根堆(最大堆,大顶堆)4 解法,求解《1464. 数组中两元素的最大乘积》
顺序遍历(最大值 · 第二最大值),排序 · 降序,快速选择,大根堆(最大堆,大顶堆)4 解法,求解《1464. 数组中两元素的最大乘积》
自定义排序,二分查找(upper_bound / lower_bound + 双指针 / 传递回调函数)2 算法 4 解法,slice / array_slice / subList / Arrays.copyOfRange / GetRange / memcpy 截取列表,求解《658. 找到 K 个最接近的元素》
自定义排序,二分查找(upper_bound / lower_bound + 双指针 / 直接找左边界)2 算法 4 解法,slice / array_slice / subList / Arrays.copyOfRange / GetRange / memcpy 截取列表,传递函数,求解《658. 找到 K 个最接近的元素》
哈希表(用 uthash / Dictionary / dict / HashMap / unordered_map 等 + 定长列表实现),排序 + 拼接字符串 2 算法,求解《1460. 通过翻转子数组使两个数组相等》
哈希表(用 uthash / Dictionary / dict / HashMap / unordered_map 等 + 定长列表实现),排序 + 拼接字符串 2 算法,用 join / implode / fmt.Sprint 将列表转字符串比较,用 Array.equals / (int[]).SequenceEqual 比较列表,C++ 直接比较 vector&……
位图(位集),0b 和 C# Convert.ToInt32("字符串", 2) 表示二进制数字,求解《782. 变为棋盘》
位图(位集),0b 和 C# Convert.ToInt32("字符串", 2) 表示二进制数字,求解《782. 变为棋盘》
136781319上页下页