05 2021 档案
摘要:875、koko吃香蕉 基本思想: 二分查找算法 具体实现: 如果珂珂能以 K 的进食速度最终吃完所有的香蕉(在 H 小时内),那么她也可以用更快的速度吃完。 当珂珂能以 K 的进食速度吃完香蕉时,我们令 possible(K) 为 true,那么就存在 X 使得当 K >= X 时, possib
阅读全文
摘要:372、超级次方 基本思想: 公式1: 两数乘积之模的拆分(a * b) % k = (a % k)(b % k) % k 公式2: 某数的n次幂取模的拆分a^n % k = (a % k)^n % k 递归 具体实现: 公式1: 两数乘积之模的拆分(a * b) % k = (a % k)(b %
阅读全文
摘要:204题、计数质数 基本思想: 筛数法 具体实现: 1、从2向后遍历,每遇到一个数字,将其倍数所对应的 is_prime 设为False,因此遇到新的数字num,is_prime[num]=True说明它不是任何2..num-1的数字的倍数,即质数。 2、isPrime[i * i:n:i] = [
阅读全文
摘要:560、和为k的子数组 基本思想: 前缀和技巧 具体实现: 举例[1,1,0,1,1] k=2 字典num_times存储的是每一个前缀和出现的次数 {0:1, 1:1, 2:2, 3:1, 4:1} 假如到达下标为4的位置时,前缀和为4, 4-k=2, 前面出现了几次2,说明以下标4结尾的和为2的
阅读全文
摘要:969、煎饼排序 基本思想: 找到n个煎饼中最大的那个 先把最大的烧饼放到最上面 再把这个最大的烧饼移到最底下 具体实现: 递归和循环 代码: 递归 from typing import List class Solution: def pancakeSort(self, A: List[int])
阅读全文
摘要:统一使用拉不拉东大佬模板 224、基本计算器I 基本思路: 括号处理使用递归 使用队列,否则会超时(不懂) 具体实现: 代码: 超时的 from collections import deque class Solution: def calculate(self, s: str) -> int:
阅读全文