自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 滑动窗口:练习题目19

这道题主要是转换思路,我们要让老板不生气的时间尽量放在客人损失最多的时间段里。也就是最多的客人数 = 老板不控制生气时的所有客人数 + minutes分钟损失最多客人数。感到满意的最大客户数量 = 1 + 1 + 1 + 1 + 7 + 5 = 16.当书店老板生气时,那一分钟的顾客就会不满意,若老板不生气则顾客是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续。分钟开始时进入商店的顾客数量,所有这些顾客在第。在某些分钟内,书店老板会生气。有一个书店老板,他的书店开了。

2025-04-14 17:06:28 119

原创 滑动窗口:练习题目18

第一次行动,不管拿哪张牌,你的点数总是 1。但是,先拿最右边的卡牌将会最大化你的可获得点数。学习了一下别人的逆向思维:前后各拿走之后剩下的牌一定是连续的。也就是剩下的连续的n-k张牌的和最小为a时,拿走的sum(cardpoints)-a也就最大。你无法拿到中间那张卡牌,所以可以获得的最大点数为 1。你必须拿起所有卡牌,可以获得的点数为所有卡牌的点数之和。无论你拿起哪两张卡牌,可获得的点数总是 4。你的点数就是你拿到手中的所有卡牌的点数之和。前k-1个后1个的和。前1个后k-1个的和。

2025-04-14 16:42:41 330

原创 滑动窗口:练习题目17

因为 15 是满足全部条件的所有子数组中的最大子数组和,所以返回 15。返回满足题面要求的最大子数组和。- [2,9,9] 不满足全部条件,因为元素 9 出现重复。- [9,9,9] 不满足全部条件,因为元素 9 出现重复。- [4,4,4] 不满足全部条件,因为元素 4 出现重复。- [1,5,4] 满足全部条件,和为 10。- [5,4,2] 满足全部条件,和为 11。- [4,2,9] 满足全部条件,和为 15。因为不存在满足全部条件的子数组,所以返回 0。是数组中一段连续非空的元素序列。

2025-04-14 16:00:29 445

原创 常用数据结构(前缀和):练习题目4

如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个。主要是运用了pairwise函数,让元素两两配对。,请你帮助你检查 子数组。2 和 6 都是偶数。

2025-04-10 12:15:48 294

原创 常用数据结构(前缀和):练习题目3

以元音开头和结尾的字符串是 "aba"、"ece"、"aa" 和 "e"。查询 [1,4] 结果为 3(字符串 "ece"、"aa"、"e")。查询 [0,2] 结果为 2(字符串 "aba" 和 "ece")。每个字符串都满足这一条件,所以返回 [3,2,1]。这两个值)并且以元音开头和结尾的字符串的数目。返回一个整数数组,其中数组的第。查询 [1,1] 结果为 0。返回结果 [2,3,0]。以及一个二维整数数组。

2025-04-10 11:33:43 238

原创 常用数据结构(前缀和):练习题目2

返回为数组中每个下标定义的子数组中所有元素的总和。因此,输出为 13。因此,输出 11。),定义对应的子数组。是数组中的一个连续、

2025-04-10 11:05:19 166

原创 常用数据结构(前缀和):练习题目1

【代码】常用数据结构(前缀和):练习题目1。

2025-04-09 20:09:28 267

原创 常用数据结构(枚举):练习题目4

这个三元组的元素和等于 nums[1] + nums[3] + nums[5] = 13。这个三元组的元素和等于 nums[2] + nums[3] + nums[4] = 9。学习了一下别人的题解,重点在于我们要把数分为,j,j前面所有元素的最小值pre,j后面所有元素的最小值suf。- nums[2] < nums[3] 且 nums[4] < nums[3]- nums[1] < nums[3] 且 nums[5] < nums[3]可以证明 nums 中不存在山形三元组。

2025-04-09 14:55:25 203

原创 常用数据结构(枚举):练习题目3

这两个操作,它们的时间复杂度都是 O(n),从而导致整体时间复杂度达到 O(n2)。- 矩形 2 和矩形 3 :10/20 == 15/30。- 矩形 0 和矩形 2 :4/8 == 10/20。- 矩形 0 和矩形 3 :4/8 == 15/30。- 矩形 1 和矩形 2 :3/6 == 10/20。- 矩形 1 和矩形 3 :3/6 == 15/30。(使用实数除法而非整数除法),则认为这两个矩形。- 矩形 0 和矩形 1 :4/8 == 3/6。)的宽高比相同,则认为这两个矩形。个矩形的宽度和高度。

2025-04-09 14:20:15 219

原创 常用数据结构(枚举):练习题目2

有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始。的不同就是我们不需要存储索引位置了,因此列表即可。数组中的每组数字都是好数对。,就可以认为这是一组。

2025-04-08 16:57:47 284

原创 常用数据结构(枚举):练习题目1

注意2其中用到的算法思想,遍历j,将j左边存入哈希表,在哈希表中寻找target-nums[j]。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。整数,并返回它们的数组下标。你可以想出一个时间复杂度小于。你可以按任意顺序返回答案。,请你在该数组中找出。

2025-04-08 16:47:58 196

原创 贪心算法:练习题目1

个包裹中的苹果重新分装到箱子中,返回你需要选择的箱子的。总容量大于或等于苹果的总数,所以可以完成重新分装。,同一个包裹中的苹果可以分装到不同的箱子中。注意先装大箱子,就能保证用的箱子最少了。使用容量为 4 和 5 的箱子。请你选择一些箱子来将这。

2025-04-08 16:03:46 342

原创 二分算法:练习题目9

这个是我的做法但是提交上去好像时长比较长啊,我对比了一下主要原因是我忽略了citations这个数组是升序排列的。给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 0, 1, 3, 5, 6。:h 代表“高引用次数”(high citations),一名科研人员的。请你设计并实现对数时间复杂度的算法解决此问题。被引用了 3 次,其余两篇论文每篇被引用。由于研究者有3篇论文每篇。计算并返回该研究者的 h。指数是指他(她)的 (篇论文被引用的次数,

2025-04-08 15:45:01 664

原创 二分算法:练习题目8

难度主要是在当我们假设了船舶载重,怎么求出这个载重下对应的天数,也就是def solvedays(weights,mid)函数的内容。请注意,货物必须按照给定的顺序装运,因此使用载重能力为 14 的船舶并将包装分成 (2, 3, 4, 5), (1, 6, 7), (8), (9), (10) 是不允许的。天内将传送带上的所有包裹送达的船的最低运载能力。第 1 天:1, 2, 3, 4, 5。第 2 天:6, 7。第 1 天:3, 2。第 2 天:2, 4。第 3 天:1, 4。第 4 天:1, 1。

2025-04-07 16:22:43 260

原创 二分算法:练习题目7

时刻 t = 1 ,每辆公交车完成的旅途数分别为 [1,0,0]。- 时刻 t = 2 ,每辆公交车完成的旅途数分别为 [2,1,0]。- 时刻 t = 3 ,每辆公交车完成的旅途数分别为 [3,1,1]。完成多趟旅途,也就是说,一辆公交车当前旅途完成后,可以。已完成的总旅途数为 1 + 0 + 0 = 1。已完成的总旅途数为 2 + 1 + 0 = 3。已完成的总旅途数为 3 + 1 + 1 = 5。所以总共完成至少 5 趟旅途的最少时间为 3。所以完成 1 趟旅途的最少时间为 2。

2025-04-07 15:40:40 117

原创 二分算法:练习题目6

一开始理解题目理解成“选择一个正整数”是从数组里选择了,怎么也做不出来。后来发现是任意选择,那么范围就来到了1~∞,可以缩小为1~max(nums)如果除数为 4 ,我们可以得到和为 7 (1+1+2+3)。如果除数为 5 ,和为 5 (1+1+1+2)。,你需要选择一个正整数作为除数,然后将数组里每个数都除以它,并对除法结果求和。每个数除以除数后都向上取整,比方说 7/3 = 3 , 10/2 = 5。如果除数为 1 ,我们可以得到和为 17 (1+2+5+9)。请你找出能够使上述结果小于等于阈值。

2025-04-07 15:23:51 297

原创 二分算法:练习题目5

第 1 个咒语:1 * [1,2,3,4,5] = [1,2,3,4,5]。- 第 1 个咒语:1 * [8,5,8] = [8,5,8]。- 第 2 个咒语:3 * [1,2,3,4,5] = [3,6,- 第 0 个咒语:5 * [1,2,3,4,5] = [5,- 第 0 个咒语:3 * [8,5,8] = [- 第 2 个咒语:2 * [8,5,8] = [总共 3 个成功组合。所以返回 [4,0,3]。总共 2 个成功组合。总共 2 个成功组合。所以返回 [2,0,2]。

2025-04-07 15:21:31 276

原创 python中sort函数具体用法

如果你想直接修改原列表,就使用方法。如果你不想修改原对象,或者需要对非列表的可迭代对象进行排序,就使用sorted()函数。

2025-04-07 13:49:02 205

原创 二分算法:练习题目4

注意,pos最后指定位置为正整数开始位置,neg为负整数结束位置。正整数开始位置即>=1的位置,负整数结束位置即>=0的位置-1。共有 3 个正整数和 3 个负整数。计数得到的最大值是 3。共有 2 个正整数和 3 个负整数。计数得到的最大值是 3。共有 4 个正整数和 0 个负整数。计数得到的最大值是 4。,返回正整数数目和负整数数目中的最大值。你可以设计并实现时间复杂度为。既不是正整数也不是负整数。的算法解决此问题吗?

2025-04-07 13:20:47 614

原创 二分算法:练习题目3

是>=target的,那么>target实际上就是>=target + 1,<target实际上就是(>=target)的返回值再-1,<=target实际上就是(>target)的返回值再-1也就是(>=target + 1)的返回值再-1。letters 中没有一个字符在字典上大于 'z',所以我们返回 letters[0]。letters 中字典顺序上大于 'c' 的最小字符是 'f'。letters 中字典上比 'a' 大的最小字符是 'c'。如果不存在这样的字符,则返回。的最小的字符,我们的。

2025-04-07 12:05:14 851

原创 二分算法:练习题目2

给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。示例 1:[3,4]示例 2:[-1,-1]示例 3:[-1,-1]nums是一个非递减数组。

2025-04-07 12:00:23 257

原创 二分算法:练习题目1

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。这里是使用的【left,right】前闭后闭。注意若不存在target,left会等于len(nums)请必须使用时间复杂度为。

2025-04-07 11:58:27 241

原创 滑动窗口:练习题目16

的所有子字符串中,除了长度大于 5 的子字符串外,其余子字符串都满足 k 约束。”,那么不满足也就是两个条件都不满足时进入while。不要把and错写为or,注意审题,“满足以下任一条件,则认为该字符串满足。满足以下任一条件,则认为该字符串满足。外,其余子字符串都满足 k 约束。的所有子字符串都满足 k 约束。的所有子字符串中,除了。

2025-04-03 16:30:20 238

原创 滑动窗口:练习题目15

8 个乘积小于 100 的子数组分别为:[10]、[5]、[2]、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。因为是乘积小于k的,因此right和left内所有元素组成的各个子数组都满足乘积小于k,因此。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。,请你返回子数组内所有元素的乘积严格小于。的连续子数组的数目。

2025-04-03 16:03:08 126

原创 滑动窗口:练习题目14

主要需要注意的是,循环每次只判断c所在元素的数量。所有子字符串都有效,因为每个字符至少出现一次。的所有子字符串中,请你统计并返回。是字符串中的一个连续、

2025-04-03 15:14:09 226

原创 滑动窗口:练习题目13

包含元素 3 至少 2 次的子数组为:[1,3,2,3]、[1,3,2,3,3]、[3,2,3]、[3,2,3,3]、[2,3,3] 和 [3,3]。次的子数组,并返回满足这一条件的子数组的数目。没有子数组包含元素 4 至少 3 次。子数组是数组中的一个连续元素序列。请你统计有多少满足 「

2025-04-03 14:31:43 141

原创 滑动窗口:练习题目12

注意ans += left,本题中是因为若某一字符串满足要求,那么想左延伸的每个字符串都满足要求,如abcabc这一字符串,bca满足要求,那么abca也满足要求。包含 a,b 和 c 各至少一次的子字符串为。包含 a,b 和 c 各至少一次的子字符串为。,它只包含三种字符 a, b 和 c。请你返回 a,b 和 c 都。出现过一次的子字符串数目。

2025-04-03 14:20:36 139

原创 滑动窗口:练习题目11

长度为 5 且字典序最小的美丽子字符串是子字符串 "11001"。长度为 2 且字典序最小的美丽子字符串是子字符串 "11"。中不含美丽子字符串,则返回一个。最短美丽子字符串的长度是 5。最短美丽子字符串的长度是 2。中的对应字符,则认为字符串。,则称这个子字符串是一个。中该位置上的字符严格大于。对于相同长度的两个字符串。出现不同的第一个位置上,7. 子字符串 "1000。示例中不存在美丽子字符串。6. 子字符串 "100。美丽子字符串的长度。5. 子字符串 "10。3. 子字符串 "10。

2025-04-03 13:53:29 363

原创 滑动窗口:练习题目10

需要注意因为最后要取较小的值,ans最大也就是len(nums),所以初始值比它大即可,当然也可以把它初值设为inf。子数组 [4,3]是该条件下的长度最小的子数组。如果不存在符合条件的子数组,返回。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。

2025-04-02 16:13:23 210

原创 滑动窗口:练习题目9

主要难点在于怎么判断目前只有两种水果,我这里用了字典,并且要在每次更新时看是否有水果数目为0了,记得删除这个字典键值对。你想要尽可能多地收集水果。你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组。如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。可以采摘 [1,2,1,1,2] 这五棵树。可以采摘 [2,3,2,2] 这四棵树。可以采摘 [1,2,2] 这三棵树。,返回你可以收集的水果的。可以采摘全部 3 棵树。

2025-04-02 16:00:33 264

原创 滑动窗口:练习题目8

主要要意识到的问题就是这个题目其实就是在求数组中子列和小于阈值的最长子列,典型的变长滑动窗口。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。s 中的任一字符要想变成 t 中对应的字符,其开销都是 2。的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。a -> a, cost = 0,字符串未发生变化,所以最大长度为 1。开销为 3,所以最大长度为 3。中对应的子字符串,则返回可以转化的最大长度。中对应的子字符串,则返回。给你两个长度相同的字符串,

2025-04-02 14:45:04 196

原创 滑动窗口:练习题目7

删掉位置 4 的数字后,[0,1,1,1,1,1,0,1] 的最长全 1 子数组为 [1,1,1,1,1]。注意最后ans减一是因为我们计算的长度是包含删除的0在内的长度,最后还要删掉0,因此减一。请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。删掉位置 2 的数后,[1,1,1] 包含 3 个 1。如果不存在这样的子数组,请返回 0。,你需要从中删掉一个元素。你必须要删除一个元素。

2025-04-02 14:27:20 358

原创 滑动窗口:练习题目6

我感觉这道不定长滑动窗口的题目和定长的最大区别就在于,它使用了left和right两个指针,注意其遍历的是right指针来避免比较left和right。因为无重复字符的最长子串是 "abc",所以其长度为 3。因为无重复字符的最长子串是 "wke",所以其长度为 3。因为无重复字符的最长子串是 "b",所以其长度为 1。,请你找出其中不含有重复字符的。请注意,你的答案必须是。的长度,"pwke" 是一个。

2025-04-02 14:05:19 138

原创 滑动窗口:题目练习5

分别为 [5, 9, 9] ,[9, 9, 2] ,[9, 2, 4] ,[2, 4, 5] 和 [4, 5, 4]。这些子数组中,和最大的是 [5, 9, 9] ,和为 23。分别为 [2, 6, 7, 3] ,[6, 7, 3, 1] 和 [7, 3, 1, 7]。这些子数组中,和最大的是 [2, 6, 7, 3] ,和为 18。改进之后使用defaultdict函数生成默认值为0的字典,字典键即数组中元素,值即为该元素出现次数,减少了时间复杂度。所以不存在几乎唯一子数组,最大和为 0。

2025-04-01 20:31:53 267

原创 滑动窗口:题目练习4

一种得到 7 个连续黑色块的方法是把第 0 ,3 和 4 个块涂成黑色。可以证明无法用少于 3 次操作得到 7 个连续的黑块。得到 blocks = "BBBBBBBWBW"。不需要任何操作,因为已经有 2 个连续的黑块。每一次操作中,你可以选择一个白色块将它。分别表示白色和黑色。所以我们返回 3。所以我们返回 0。

2025-04-01 19:57:04 215

原创 滑动窗口:题目练习3

中心为下标 4 的子数组,avg[4] = (4 + 3 + 9 + 1 + 8 + 5 + 2) / 7 = 4。- 中心为下标 5 的子数组,avg[5] = (3 + 9 + 1 + 8 + 5 + 2 + 6) / 7 = 4。- 中心为下标 3 且半径为 3 的子数组的元素总和是:7 + 4 + 3 + 9 + 1 + 8 + 5 = 37。- avg[0]、avg[1] 和 avg[2] 是 -1 ,因为在这几个下标前的元素数量都不足 k 个。的子数组中所有元素的平均值,即下标在。

2025-04-01 19:45:12 555

原创 python基础题目练习31

主要是把分钟和时间换算到一个单位上,我是换算到小时上了,并且需要注意,时针也跟着分针动。请你返回在时钟上,由给定时间的时针和分针组成的较小角的角度(60 单位制)。

2025-04-01 16:59:13 285

原创 滑动窗口:题目练习2

第二次是因为我原本将ans初始值设置为0,每次求最大值时和初始值进行比较,但是我忽略了ave小于0的情况,如果小于0则最后输出的最大值就为0,因此我在循环内设置if,获取第一次的ave作为ans的初值。提交的时候错了几次,第一次时由于在k==1并且nums的长度为1时,判断错误,所以加入了一个if条件。最大平均数 (12-5-6+50)/4 = 51/4 = 12.75。的连续子数组,并输出该最大平均数。的答案都将被视为正确答案。个元素组成的整数数组。请你找出平均数最大且。

2025-04-01 16:29:41 210

原创 滑动窗口:题目练习1

此时,我们为下一次滑动窗口做准备,我们将此时长度为k的子串的最左元素剔除,那么若它为元音字母,计数器减少1。然后下一次循环又会加入一个最右侧元素,再次获得一个k长度子串中的元音字母数vowel,与历史最多的ans比较后抉择是否存入ans。我们遍历字符串中的每个字符,若为元音则计数器vowel+1,但是我们要确定子串长度为k,因此若i<k-1时,我们继续计数。"lee"、"eet" 和 "ode" 都包含 2 个元音字母。任意长度为 2 的子字符串都包含 2 个元音字母。字符串 s 中不含任何元音字母。

2025-04-01 15:32:50 115

原创 python基础题目练习30

你必须设计并实现时间复杂度为。,其中的值递增到一个。返回峰值元素的下标。

2025-04-01 14:41:23 155

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除