上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: 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 % 阅读全文
posted @ 2021-05-23 18:28 最近饭吃的很多 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 204题、计数质数 基本思想: 筛数法 具体实现: 1、从2向后遍历,每遇到一个数字,将其倍数所对应的 is_prime 设为False,因此遇到新的数字num,is_prime[num]=True说明它不是任何2..num-1的数字的倍数,即质数。 2、isPrime[i * i:n:i] = [ 阅读全文
posted @ 2021-05-22 21:30 最近饭吃的很多 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 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的 阅读全文
posted @ 2021-05-18 17:32 最近饭吃的很多 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 969、煎饼排序 基本思想: 找到n个煎饼中最大的那个 先把最大的烧饼放到最上面 再把这个最大的烧饼移到最底下 具体实现: 递归和循环 代码: 递归 from typing import List class Solution: def pancakeSort(self, A: List[int]) 阅读全文
posted @ 2021-05-06 16:45 最近饭吃的很多 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 统一使用拉不拉东大佬模板 224、基本计算器I 基本思路: 括号处理使用递归 使用队列,否则会超时(不懂) 具体实现: 代码: 超时的 from collections import deque class Solution: def calculate(self, s: str) -> int: 阅读全文
posted @ 2021-05-05 16:40 最近饭吃的很多 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 15、三数之和 基本思想: 利用排序后的使用双指针的两数之和 具体实现: 1、将数组排序 2、for循环,i从下标0的地方开始,left定义在i + 1位置上,right定义在数组结尾位置上 3、如果nums[i] + nums[left] + nums[right] > 0 说明三数之和大了,ri 阅读全文
posted @ 2021-04-17 17:18 最近饭吃的很多 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 76、最小覆盖子串 基本思想: 1、用left,right表示滑动窗口的左边界和右边界,通过改变left,right来扩展和收缩滑动窗口, 2、不断增加right,扩大窗口,直到窗口中的字符符合要求,包含了T中所有字符 3、停止增加right,增加left,缩小窗口,直到窗口中的字符符合要求 4、重 阅读全文
posted @ 2021-04-11 13:19 最近饭吃的很多 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 141、环形链表 基本思想: 使用快慢指针,如果是环形的,快指针一定会追上慢指针 具体实现: 循环让快慢指针往后跑, 循环条件是快指针不等于慢指针, 快指针等于慢指针则跳出循环 如果在循环内,快指针指向了null, 跳出循环返回不是环形链表 代码: class Solution: def hasCy 阅读全文
posted @ 2021-04-09 18:32 最近饭吃的很多 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 111、二叉树的最小深度 基本思想: 广度优先搜索 具体实现: 1、根节点入列 2、循环条件是 直到清空队列 3、节点出列以后判断左右子树 如果左右子树都为空,返回现在的深度 如果左孩子存在,加入队列,原深度加1 如果右孩子存在,加入队列,原深度加1 depth+1此时并不会改变depth 代码: 阅读全文
posted @ 2021-04-05 10:46 最近饭吃的很多 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 37、解数独 基本思路: 回溯算法、把所有情况试一遍 需要填入数字的格,去掉不可能的数字,每一个可能的数字都要试 具体实现: 1、当填写第i行,第j列的元素时,需要知道其对应的行,列,块中,1-9数字的使用情况,从而选用不同的数字 新建row = [set(range(1, 10)) for _ i 阅读全文
posted @ 2021-04-03 15:19 最近饭吃的很多 阅读(132) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页