SunQH Blog

努力做一个更优秀的人

算法题目 字符串、模拟法

Leetcode按类型 字符串、模拟法 数组遍历框架 数组遍历框架,典型的线性迭代结构: void traverse(int[] arr) { for (int i = 0; i < arr.length; i++) { // 迭代访问 arr[i] } } 总结 标准数组生成字典及字典...

算法题目 字典树、并查集

Leetcode按类型 字典树 框架 原理 字典树(Trie): 想字典一样的树 🚩(1.5h) 440. 字典序的第K小数字 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。 注意:1 ≤ k ≤ n ≤ 109。 1 2 3 4 5 6 7 8 9 10 示例 : 输入: n: 13 k: 2 输...

算法题目 堆栈(stack)

leetcode题目按类型 堆栈stack ✅(20m) 20. 有效的括号 注意: range(x)取不到x 给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 1 2 3 4 5 6 7 8 9 10 11 1...

算法题目 图

leetcode题目按类型 图 总结 图定义 1 2 3 4 5 # Definition for a Node. class Node: def __init__(self, val = 0, neighbors = None): self.val = val self.neighbors = neighbors if neighbors i...

算法题目 哈希表

Leetcode按类型 字典,哈希表 总结 字典使用和查字典方法 遍历列表同时查字典 – 字典查找速度快 搜索元素就想字典(hash表) 1 2 3 4 for i, n in enumerate(nums): if target - n in dct: return [dct[target - n], i] dct[n] = i 1...

算法题目 双指针

leetcode题目按类型 双指针 快慢指针框架 判断是否有环 1 2 3 4 5 6 slow = fast = head while fast and fast.next: slow = slow.next fast = fast.next.next if fast == slow: return True 寻找环的起始节点 ...

算法题目 动态规划

leetcode题目按类型 动态规划 ✅ 动态规划框架 形式: 动态规划问题的一般形式就是求最值。(比如说让你求最⻓递增子序列呀,最小编辑距离) 特点: 存在“重叠子问题” 存在“最优子结构” ✅ 步骤: 确定问题的 base case(最简单...

算法题目 剑指offer题目

按书内容做题 ACM模式练习 输入输出 牛客网OJ训练,如何读取未知行的输入数据 训练场链接如下:牛客网OJ训练场 单行 1 2 3 4 import sys for line in sys.stdin: data = line.split() print(int(data[0]) + int(data[1])) 1 2 data = input()...

算法题目 位操作

Leetcode按类型 位操作 位操作包括: ¬ 取反(NOT) ∩∩ 按位或(OR) ⊕⊕ 按位异或(XOR) ∪∪ 按位与(AND) 移位 移位是一个二元运算符,用来将一个二进制数中的每一位全部都向一个方向移动指定位,溢出的部分将被舍弃,而空缺的部分填入一定的值。 移位又分为 算术移位 逻辑移位 总结 使用 collection cou...

算法题目 二叉树

leetcode题目按类型 二叉树 ✅ 二叉树遍历框架 二叉树算法的设计的总路线:明确一个节点要做的事情,然后剩下的事抛给框架。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class TreeNode: def __init__(self, x): self.val = x self.left = None ...