自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Keep Coding

点关注,不迷路 ↓↓↓❤️

  • 博客(26)
  • 收藏
  • 关注

原创 LeetCode-Python-5435. 并行课程 II(拓扑排序 + 堆)

给你一个整数n表示某所大学里课程的数目,编号为1到n,数组dependencies中,dependencies[i] = [xi, yi] 表示一个先修课的关系,也就是课程xi必须在课程yi之前上。同时你还有一个整数k。在一个学期中,你最多可以同时上k门课,前提是这些课的先修课在之前的学期里已经上过了。请你返回上完所有课最少需要多少个学期。题目保证一定存在一种上完所有课的方式。示例 1:输入:n = 4, dependencies =...

2020-06-28 10:10:09 676

原创 LeetCode-Python-5434. 删掉一个元素以后全为 1 的最长子数组(数组 + 滑动窗口)

给你一个二进制数组nums,你需要从中删掉一个元素。请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。如果不存在这样的子数组,请返回 0 。提示 1:输入:nums = [1,1,0,1]输出:3解释:删掉位置 2 的数后,[1,1,1] 包含 3 个 1 。示例 2:输入:nums = [0,1,1,1,0,1,1,0,1]输出:5解释:删掉位置 4 的数字后,[0,1,1,1,1,1,0,1] 的最长全 1 子数组为 [1,1,1,1,...

2020-06-28 09:57:43 380

原创 LeetCode-Python-5433. n 的第 k 个因子(数组 + 因数)

给你两个正整数n和k。如果正整数i满足n % i == 0,那么我们就说正整数i是整数n的因子。考虑整数n的所有因子,将它们升序排列。请你返回第k个因子。如果n的因子数少于k,请你返回-1。示例 1:输入:n = 12, k = 3输出:3解释:因子列表包括 [1, 2, 3, 4, 6, 12],第 3 个因子是 3 。示例 2:输入:n = 7, k = 2输出:7解释:因子列表包括 [1, 7] ,第 2 个因...

2020-06-28 09:49:34 441

原创 LeetCode-Python-5432. 去掉最低工资和最高工资后的工资平均值(数组)

给你一个整数数组salary,数组里每个数都是唯一的,其中salary[i]是第i个员工的工资。请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。示例 1:输入:salary = [4000,3000,1000,2000]输出:2500.00000解释:最低工资和最高工资分别是 1000 和 4000 。去掉最低工资和最高工资以后的平均工资是 (2000+3000)/2= 2500示例 2:输入:salary = [1000,2000,3000]...

2020-06-28 09:33:43 518

原创 LeetCode-Python-1471. 数组中的 k 个最强值(数组 + 自定义排序 + 桶排序 + 双指针)

给你一个整数数组 arr 和一个整数 k 。设 m 为数组的中位数,只要满足下述两个前提之一,就可以判定 arr[i] 的值比 arr[j] 的值更强:|arr[i] - m| > |arr[j]- m||arr[i] - m| == |arr[j] - m|,且 arr[i] > arr[j]请返回由数组中最强的 k 个值组成的列表。答案可以以 任意顺序 返回。中位数 是一个有序整数列表中处于中间位置的值。形式上,如果列表的长度为 n ,那么中位数就是该有序列表(下标从 ...

2020-06-24 11:44:23 328

原创 LeetCode-Python-1470. 重新排列数组(数组)

给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。请你将数组按 [x1,y1,x2,y2,...,xn,yn] 格式重新排列,返回重排后的数组。示例 1:输入:nums = [2,5,1,3,4,7], n = 3输出:[2,3,5,4,1,7]解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,1,7]示例 2:输入:nums = [1,2,3..

2020-06-24 11:29:08 722

原创 LeetCode-Python-1462. 课程安排 IV (拓扑排序)

你总共需要上 n门课,课程编号依次为 0到 n-1。有的课会有直接的先修课程,比如如果想上课程0 ,你必须先上课程 1 ,那么会以 [1,0]数对的形式给出先修课程数对。给你课程总数 n和一个直接先修课程数对列表prerequisite 和一个查询对列表queries。对于每个查询对 queries[i],请判断queries[i][0]是否是queries[i][1]的先修课程。请返回一个布尔值列表,列表中每个元素依次分别对应 queries每个查询对的判断结...

2020-06-22 09:56:26 424

原创 LeetCode-Python-1461. 检查一个字符串是否包含所有长度为 K 的二进制子串 (字符串 + 数学)

给你一个二进制字符串s和一个整数k。如果所有长度为 k的二进制字符串都是 s的子串,请返回 True ,否则请返回 False 。示例 1:输入:s = "00110110", k = 2输出:true解释:长度为 2 的二进制串包括 "00","01","10" 和 "11"。它们分别是 s 中下标为 0,1,3,2 开始的长度为 2 的子串。示例 2:输入:s = "00110", k = 2输出:true示例 3:输入:s = "0110", k = 1...

2020-06-22 09:47:41 439

原创 LeetCode-Python-1460. 通过翻转子数组使两个数组相等 (数组)

给你两个长度相同的整数数组target和arr。每一步中,你可以选择arr的任意 非空子数组并将它翻转。你可以执行此过程任意次。如果你能让 arr变得与 target相同,返回 True;否则,返回 False 。示例 1:输入:target = [1,2,3,4], arr = [2,4,1,3]输出:true解释:你可以按照如下步骤使 arr 变成 target:1- 翻转子数组 [2,4,1] ,arr 变成 [1,4,2,3]2- 翻转子数组 [4,2...

2020-06-22 09:42:55 370

原创 LeetCode-Python-1457. 二叉树中的伪回文路径 (二叉树 + 数组)

给你一棵二叉树,每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的,当它满足:路径经过的所有节点值的排列中,存在一个回文序列。请你返回从根到叶子节点的所有路径中伪回文路径的数目。示例 1:输入:root = [2,3,1,3,1,null,1]输出:2解释:上图为给定的二叉树。总共有 3 条从根到叶子的路径:红色路径 [2,3,3] ,绿色路径 [2,1,1] 和路径 [2,3,1] 。 在这些路径中,只有红色和绿色的路径是伪回文路径,因为红色路径 ...

2020-06-22 01:38:30 270

原创 LeetCode-Python-1456. 定长子串中元音的最大数目 (滑动窗口)

给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。英文中的 元音字母 为(a, e, i, o, u)。示例 1:输入:s = "abciiidef", k = 3输出:3解释:子字符串 "iii" 包含 3 个元音字母。示例 2:输入:s = "aeiou", k = 2输出:2解释:任意长度为 2 的子字符串都包含 2 个元音字母。示例 3:输入:s = "leetcode", k = 3输出:2解释:".

2020-06-22 01:33:15 646

原创 LeetCode-Python-1455. 检查单词是否为句中其他单词的前缀(字符串)

给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。如果searchWord 是某一个单词的前缀,则返回句子sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则返回 -1 。字符串 S 的..

2020-06-22 01:31:22 485

原创 LeetCode-Python-1452. 收藏清单 (集合 + 哈希表)

给你一个数组 favoriteCompanies ,其中 favoriteCompanies[i] 是第 i 名用户收藏的公司清单(下标从 0 开始)。请找出不是其他任何人收藏的公司清单的子集的收藏清单,并返回该清单下标。下标需要按升序排列。示例 1:输入:favoriteCompanies = [["leetcode","google","facebook"],["google","microsoft"],["google","facebook"],["google"],["amazon.

2020-06-20 12:26:30 267

原创 LeetCode-Python-1451. 重新排列句子中的单词 (字符串 + 排序)

「句子」是一个用空格分隔单词的字符串。给你一个满足下述格式的句子 text :句子的首字母大写text 中的每个单词都用单个空格分隔。请你重新排列 text 中的单词,使所有单词按其长度的升序排列。如果两个单词的长度相同,则保留其在原句子中的相对顺序。请同样按上述格式返回新的句子。示例 1:输入:text = "Leetcode is cool"输出:"Is cool leetcode"解释:句子中共有 3 个单词,长度为 8 的 "Leetcode" ,长度为 2 的 "is.

2020-06-20 11:40:32 1259

原创 LeetCode-Python-1450. 在既定时间做作业的学生人数 (数组)

给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间。已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。请返回在查询时间 queryTime 时正在做作业的学生人数。形式上,返回能够使 queryTime 处于区间 [startTime[i], endTime[i]](含)的学生人数。示例 1:输入:startTime = [1,2,3], endTime =.

2020-06-20 11:20:30 418

原创 LeetCode-Python-1448. 统计二叉树中好节点的数目(二叉树)

给你一棵根为root的二叉树,请你返回二叉树中好节点的数目。「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。示例 1:输入:root = [3,1,4,3,null,1,5]输出:4解释:图中蓝色节点为好节点。根节点 (3) 永远是个好节点。节点 4 -> (3,4) 是路径中的最大值。节点 5 -> (3,4,5) 是路径中的最大值。节点 3 -> (3,1,3) 是路径中的最大值。示例 2:输入:root ...

2020-06-19 10:46:20 542

原创 LeetCode-Python-1447. 最简分数 (数学 + 数组)

给你一个整数n,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于n的 最简分数。分数可以以 任意顺序返回。示例 1:输入:n = 2输出:["1/2"]解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。示例 2:输入:n = 3输出:["1/2","1/3","2/3"]示例 3:输入:n = 4输出:["1/2","1/3","1/4","2/3","3/4"]解释:"2/4" 不是最简分数,因为它可以化简为 "1/2" 。...

2020-06-19 10:39:04 714

原创 LeetCode-Python-1446. 连续字符(字符串)

给你一个字符串s,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。请你返回字符串的能量。示例 1:输入:s = "leetcode"输出:2解释:子字符串 "ee" 长度为 2 ,只包含字符 'e' 。示例 2:输入:s = "abbcccddddeeeeedcba"输出:5解释:子字符串 "eeeee" 长度为 5 ,只包含字符 'e' 。示例 3:输入:s = "triplepillooooow"输出:5示例 4:输入:s = "hoor...

2020-06-19 10:31:21 669

原创 LeetCode-Python-1443. 收集树上所有苹果的最少时间 (N 叉树)

给你一棵有n个节点的无向树,节点编号为0到n-1,它们中有一些节点有苹果。通过树上的一条边,需要花费 1 秒钟。你从节点 0出发,请你返回最少需要多少秒,可以收集到所有苹果,并回到节点 0 。无向树的边由edges给出,其中edges[i] = [fromi, toi],表示有一条边连接from和toi 。除此以外,还有一个布尔数组hasApple ,其中hasApple[i] = true代表节点i有一个苹果,否则,节点i没有苹果。示例 1:输...

2020-06-19 10:23:59 436

原创 LeetCode-Python-1442. 形成两个异或相等数组的三元组数目 (数组 + 前缀和)

给你一个整数数组 arr 。现需要从数组中取三个下标 i、j 和 k ,其中 (0 <= i < j <= k < arr.length) 。a 和 b 定义如下:a = arr[i] ^ arr[i + 1] ^ ... ^ arr[j - 1]b = arr[j] ^ arr[j + 1] ^ ... ^ arr[k]注意:^ 表示 按位异或 操作。请返回能够令 a == b 成立的三元组 (i, j , k) 的数目。示例 1:输入:arr =.

2020-06-18 12:07:56 313

原创 LeetCode-Python-1441. 用栈操作构建数组 (双指针)

给你一个目标数组 target 和一个整数 n。每次迭代,需要从list = {1,2,3..., n} 中依序读取一个数字。请使用下述操作来构建目标数组 target :Push:从 list 中读取一个新元素, 并将其推入数组中。Pop:删除数组中的最后一个元素。如果目标数组构建完成,就停止读取更多元素。题目数据保证目标数组严格递增,并且只包含 1 到 n 之间的数字。请返回构建目标数组所用的操作序列。题目数据保证答案是唯一的。示例 1:输入:target = [...

2020-06-17 10:10:33 331

原创 LeetCode-Python-1437. 是否所有 1 都至少相隔 k 个元素(数组)

给你一个由若干 0 和 1 组成的数组 nums 以及整数 k。如果所有 1 都至少相隔 k 个元素,则返回 True ;否则,返回 False 。示例 1:输入:nums = [1,0,0,0,1,0,0,1], k = 2输出:true解释:每个 1 都至少相隔 2 个元素。示例 2:输入:nums = [1,0,0,1,0,1], k = 2输出:false解释:第二个 1 和第三个 1 之间只隔了 1 个元素。示例 3:输入:nums = [1,1,1,1,1], .

2020-06-15 11:20:42 317

原创 LeetCode-Python-1436. 旅行终点站(图 + 哈希表 + 集合)

给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。题目数据保证线路图会形成一条不存在循环的线路,因此只会有一个旅行终点站。示例 1:输入:paths = [["London","New York"],["New York","Lima"],["Lima","Sao Paulo"]]输出:".

2020-06-15 11:13:00 343

原创 LeetCode-Python-1433. 检查一个字符串是否可以打破另一个字符串(字符串)

给你两个字符串s1和s2,它们长度相等,请你检查是否存在一个s1的排列可以打破 s2的一个排列,或者是否存在一个s2的排列可以打破 s1 的一个排列。字符串x可以打破字符串y(两者长度都为n)需满足对于所有i(在0到n - 1之间)都有x[i] >= y[i](字典序意义下的顺序)。示例 1:输入:s1 = "abc", s2 = "xya"输出:true解释:"ayx" 是 s2="xya" 的一个排列,"abc" 是字符串 s1="...

2020-06-15 10:42:22 278

原创 LeetCode-Python-1432. 改变一个整数能得到的最大差值(字符串 + 数学 + 暴力法)

给你一个整数num。你可以对它进行如下步骤恰好 两次:选择一个数字x (0<= x <= 9).选择另一个数字y (0<= y <= 9)。数字y可以等于x。将 num中所有出现 x的数位都用 y替换。得到的新的整数 不能有前导 0 ,得到的新整数也 不能是 0。令两次对 num的操作得到的结果分别为a和b。请你返回a 和b的 最大差值 。示例 1:输入:num = 555输出:888解释:第一次选...

2020-06-15 10:26:34 246

原创 LeetCode-Python-1431. 拥有最多糖果的孩子(模拟法 + 贪心)

给你一个数组candies和一个整数extraCandies,其中candies[i]代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的extraCandies个糖果分配给孩子们之后,此孩子有 最多的糖果。注意,允许有多个孩子同时拥有 最多的糖果数目。示例 1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true]解释:孩子 1 有 2 个糖果,...

2020-06-15 09:55:50 364

空空如也

空空如也

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

TA关注的人

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