03 2024 档案

摘要:目录题目法一、模拟法二、不等式 题目 法一、模拟 分析由二维数组的特性可以得知,向右上方走实际上等于 x -= 1, y += 1, 向左下方走实际上等于 x+= 1, y -= 1 当向右上方走的时候,有两种情况会造成碰壁,因而需要转弯, CASE 1: 碰到上方的壁 (x无法再 - 1),但还没 阅读全文
posted @ 2024-03-29 09:42 Frommoon 阅读(21) 评论(0) 推荐(0) 编辑
摘要:目录题目题解 题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 = "2", num2 = "3" 输出: 阅读全文
posted @ 2024-03-29 08:57 Frommoon 阅读(10) 评论(0) 推荐(0) 编辑
摘要:目录一维前缀和二维前缀和差分数组差分数组反推出原始数组差分数组模板二维差分数组模板 前缀和应用场景:原始数组不会被修改的情况下,频繁查询某个区间的累加和。 eg:计算数组下标2到5的数组和,原本用for循环,有了前缀和直接用5的前缀和减去2的前缀和得到答案,可以将O(n)的复杂度降为O(1) 一维前 阅读全文
posted @ 2024-03-27 13:17 Frommoon 阅读(33) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:差分数组 题目 车上最初有 capacity 个空座位。车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向) 给定整数 capacity 和一个数组 trips , trip[i] = [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPass 阅读全文
posted @ 2024-03-27 13:11 Frommoon 阅读(7) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:差分数组 题目 这里有 n 个航班,它们分别从 1 到 n 进行编号。 有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 last 阅读全文
posted @ 2024-03-27 12:56 Frommoon 阅读(20) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:二维前缀和 题目 给定一个二维矩阵 matrix,以下类型的多个请求: 计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2) 。 实现 NumMatrix 类: NumMatrix(int[][] matrix) 给定整 阅读全文
posted @ 2024-03-27 10:42 Frommoon 阅读(10) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:DFS 题目 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入:grid = [ ["1","1","1 阅读全文
posted @ 2024-03-25 20:47 Frommoon 阅读(12) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:DFS 题目 题解:DFS class Solution: def solve(self, board: List[List[str]]) -> None: # 如果是空数组,直接返回 if not board: return # 计算数组长宽 row = len(board) col 阅读全文
posted @ 2024-03-21 13:53 Frommoon 阅读(2) 评论(0) 推荐(0) 编辑
摘要:目录试题A:裁纸刀试题C:质因数个数埃拉托斯特尼筛法求素数试题J:数的拆分题解 试题A:裁纸刀 分析:可以举几个例子出来发现规律是:4+(m-1)+(n-1)m;4表示边缘4刀,m-1表示横着切的数量,(n-1)m表示竖着切的数量 结果:4+19+21*20=443 试题C:质因数个数 埃拉托斯特尼 阅读全文
posted @ 2024-03-21 11:26 Frommoon 阅读(21) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:滑动窗口 题目 DNA序列 由一系列核苷酸组成,缩写为 'A', 'C', 'G' 和 'T'.。 例如,"ACGAATTCCG" 是一个 DNA序列 。 在研究 DNA 时,识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现 阅读全文
posted @ 2024-03-20 16:20 Frommoon 阅读(23) 评论(0) 推荐(0) 编辑
摘要:目录试题A:排列字母试题B:寻找整数题解试题C:纸张尺寸试题D:数位排序试题E:蜂巢试题F:消除游戏暴力试题G:全排列的价值题解正解试题H:技能升级试题I:最长不下降子序列试题J:最优清零方案代码题解:滑动窗口 试题A:排列字母 见 https://www.cnblogs.com/lushuang5 阅读全文
posted @ 2024-03-20 12:57 Frommoon 阅读(46) 评论(0) 推荐(0) 编辑
摘要:目录题目python题解:两遍前缀和javascript前缀积、后缀积 题目 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 3 阅读全文
posted @ 2024-03-19 10:56 Frommoon 阅读(9) 评论(0) 推荐(0) 编辑
摘要:目录题目前缀和 题目 给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= right 实现 NumArray 类: NumArray(int[] nums) 使用数组 num 阅读全文
posted @ 2024-03-19 09:55 Frommoon 阅读(8) 评论(0) 推荐(0) 编辑
摘要:目录试题A:排列字母试题B:特殊时间题解试题C:纸张尺寸法一、暴力试题D:数位排序题解试题E:矩形拼接试题F:GCD法一法二试题G:蜂巢题解试题H:重新排序代码:前缀和/差分试题I:青蛙过河代码试题J:因数平方和 试题A:排列字母 结果:AAAEEEEHHHIIILLRRRSSTTWWWY 试题B: 阅读全文
posted @ 2024-03-18 17:00 Frommoon 阅读(26) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:滑动窗口 题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子字符串是 "abc",所以其长度为 3 示例 2: 输入: s = "bbbbb" 输出: 1 解 阅读全文
posted @ 2024-03-14 12:48 Frommoon 阅读(9) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:滑动窗口pythonjavascript 题目 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 1: 输入: s = "cbaebabacd", p 阅读全文
posted @ 2024-03-14 11:19 Frommoon 阅读(15) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:滑动窗口 题目 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2 的 子串 示例 1: 输入:s1 = "ab" s2 = "eidbaooo" 输出:true 解 阅读全文
posted @ 2024-03-12 10:24 Frommoon 阅读(6) 评论(0) 推荐(0) 编辑
摘要:目录题目Python滑动窗口+备忘录JavaScript滑动窗口+备忘录 题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少 阅读全文
posted @ 2024-03-11 20:51 Frommoon 阅读(7) 评论(0) 推荐(0) 编辑
摘要:适用情景:字符串或数组的子串或子数组 模板 def slidingWindow(s, t): need = {} # 存储字符串 t 中各个字符的需求量 window = {} # 存储滑动窗口中各个字符的出现次数 for c in t: # 遍历字符串t need.setdefault(c, 0) 阅读全文
posted @ 2024-03-11 20:47 Frommoon 阅读(16) 评论(0) 推荐(0) 编辑
摘要:目录试题F:时间显示题解试题G:杨辉三角形法一、暴力法二、公式法三、结合上者试题H:左孩子右兄弟题解:树型dp试题I:异或数列法一、博弈论试题J:括号序列法一、动态规划 试题F:时间显示 1秒=1000毫秒 1分=60秒=100060=60000毫秒 1小时=60分=6000060=3600000毫 阅读全文
posted @ 2024-03-11 11:25 Frommoon 阅读(47) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:二分 题目 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2] 若旋转 7 次,则可以得到 [0,1,2, 阅读全文
posted @ 2024-03-10 14:43 Frommoon 阅读(9) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:二分 题目 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞ 。 你必须实现时间复杂度为 O(log n) 阅读全文
posted @ 2024-03-09 11:23 Frommoon 阅读(14) 评论(0) 推荐(0) 编辑
摘要:目录试题A:卡片法一、暴力测试法法二、另解试题B:直线题解试题C:货物摆放法一、暴力法二、在遍历之前筛掉不是n的因数的试题D:路径法一、改进的迪杰斯特拉算法法二、动态规划试题E:回路计数法一、 试题A:卡片 分析:11年是从1到2020,2出现的次数,这个题感觉反过来了,求1到多少0-9出现的次数是 阅读全文
posted @ 2024-03-08 14:52 Frommoon 阅读(33) 评论(0) 推荐(0) 编辑
摘要:目录题目python法一、用两次二分分别找到左右边界法二、找到一个值与target相等后用两个指针先后探寻javascript题解:二分+双指针 题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 阅读全文
posted @ 2024-03-07 13:34 Frommoon 阅读(11) 评论(0) 推荐(0) 编辑
摘要:目录题目二分搜索 题目 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], n 阅读全文
posted @ 2024-03-06 17:55 Frommoon 阅读(3) 评论(0) 推荐(0) 编辑
摘要:目录题目python模板之二分搜索的左边界版javascript二分搜索 题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums = [1,3,5 阅读全文
posted @ 2024-03-06 17:01 Frommoon 阅读(2) 评论(0) 推荐(0) 编辑
摘要:目录最基本的二分搜索寻找左边界的二分搜索寻找右边界的二分搜索 统一记忆为闭区间,只需要修改nums[mid]==target时收缩哪边边界,以及越界情况 结论:数组元素重复时,将 mid 与 mid+1或mid-1 进行比较来缩小范围;数组元素不重复时,将 mid 与 left或right进行比较来 阅读全文
posted @ 2024-03-06 11:09 Frommoon 阅读(16) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:暴力 题目 题解:暴力 需要知道文件的操作;发现2020的行列标变化 li = [] # 创建一个空列表用于存储读取的文本内容 with open(r'2020.txt', 'r') as fp: # 打开名为 '2020.txt' 的文件,并使用文件句柄 fp for line in 阅读全文
posted @ 2024-03-05 13:30 Frommoon 阅读(28) 评论(0) 推荐(0) 编辑
摘要:目录题目暴力优化埃拉托斯特尼素数筛选法 题目 输入n,返回[2,n)中素数的个数 暴力 从2开始到n,一个一个判断是不是素数,是的话就计数器加1。判断素数函数:从2开始到n,判断有没有是n的倍数,有倍数就不是素数 def countPrimes(n:int): count=0 for i in ra 阅读全文
posted @ 2024-03-04 20:16 Frommoon 阅读(28) 评论(0) 推荐(0) 编辑
摘要:目录题目暴力:最大路径和题解:动态规划 题目 暴力:最大路径和 n = int(input()) # 输入数塔的行数 # 创建一个二维数组a来表示数塔,初始值都为0 a = [[0] * (n+1) for _ in range(n+1)] # 从第1行开始逐行读取输入,并计算最大路径和 for i 阅读全文
posted @ 2024-03-04 18:55 Frommoon 阅读(28) 评论(0) 推荐(0) 编辑
摘要:目录题目题解 题目 题解 多画一下发现面的数量等于交点数量+1,进而转化为求交点的数量,注意同一个交点只记一次,需要去重操作 lines = set() # 存储直线的集合 res = 1 # 初始面的数量为1 n = int(input()) # 输入边的数量 def check(A, B): p 阅读全文
posted @ 2024-03-04 12:25 Frommoon 阅读(29) 评论(0) 推荐(0) 编辑
摘要:目录题目题解优化 题目 给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置, 阅读全文
posted @ 2024-03-03 11:02 Frommoon 阅读(9) 评论(0) 推荐(0) 编辑
摘要:目录题目python法一、排序+讨论法二、简洁JavaScript排序 题目 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示 阅读全文
posted @ 2024-03-02 20:30 Frommoon 阅读(4) 评论(0) 推荐(0) 编辑
摘要:目录题目分析验证代码 题目 对一个字符串,对它进行冒泡排序使其为升序,例如:对于lan,排序成 aln 需要交换一次(只能交换相邻的两个字母),对于qiao,排序成 aioq 就需要交换4次。请找出冒泡排序时恰好需要交换100次的字符串,如果有多个字符串满足条件,则找出最短的那个,如果有多个满足条件 阅读全文
posted @ 2024-03-02 14:16 Frommoon 阅读(19) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:字典 题目 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [[ 阅读全文
posted @ 2024-03-01 21:05 Frommoon 阅读(7) 评论(0) 推荐(0) 编辑
摘要:目录题目题解:暴力题解:优化 题目 题解:暴力 思路:枚举每一个Ai,并一直减去Bi,直到小于零为止,即为该技能所能增加的点数的集合。将每一个选择存进res中,并排序选择前M大的技能点即可 。 a,b=map(int,input().split()) #读入成二维数组 m=[]#存读进来的数据 re 阅读全文
posted @ 2024-03-01 18:57 Frommoon 阅读(135) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示