SunQH Blog

努力做一个更优秀的人

算法题目 双指针

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 ...

算法题目 二分查找

leetcode题目按类型 二分查找 ✅ 二分查找框架 ✅ 找中间 1 2 3 4 5 6 7 8 9 10 11 def binary_search(nums:List[int], target:int): l, r = 0, len(nums)-1 while l <= r: mid = (l+r)//2 if nums[mid] < targ...

算法题目 【置顶】经典题目

经典题目 排序 🚩冒泡排序 — 逐个比较,最大的后移 1 2 3 4 5 6 def bubbleSort(nums): for i in range(len(nums)): # Last i elements are already in place for j in range(len(nums)-i-1): if nums[...

算法题目 Labuladong题目

按书上内容 labuladong高频题 🚩(1h)204. 计数质数 难度简单615 统计所有小于非负整数 n 的质数的数量。 示例 1: 1 2 3 输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 示例 2: 1 2 输入:n = 0 输出:0 示例 3: 1 2 输入:n = 1 输出:0 提示: ...

算法题目 Sql

Leetcode按类型 SQL 总结 SQL MYSQL language 内联结: select … from … inner join on … 外联结: 考虑到可能不是每个人都有地址信息,我们应该使用 outer join 而不是默认的 inner join select … frome … left join … on … 1 2 3 4 5 # SQL select ...

编程能力 Python注意点总结

Python zip() 函数 Python 内置函数 描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。 zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,z...