自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 268. 丢失的数字

268. 丢失的数字给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。进阶:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的

2020-11-05 09:13:17 196

原创 9. 回文数

9. 回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?解:一、反转字符串class Solution:

2020-11-04 19:54:34 252

原创 788. 旋转数字

788. 旋转数字我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方(在这种情况下,它们以不同的方向旋转,换句话说,2 和 5 互为镜像);6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现在我们有一个正整数 N, 计算从 1 到 N 中有多少个数 X

2020-11-02 09:17:01 1006

原创 1103. 分糖果 II

1103. 分糖果 II排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程(每次都比上一次多给出一颗糖果,当到达队伍终点后再次从队伍起点开始),直到我们分完所有的糖果。注意,就算我们手中

2020-11-01 09:28:13 136

原创 1189. “气球” 的最大数量

1189. “气球” 的最大数量给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 “balloon”(气球)。字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 “balloon”。示例 1:输入:text = “nlaebolko”输出:1示例 2:输入:text = “loonbalxballpoon”输出:2示例 3:输入:text = “leetcode”输出:0提示:1 <= text.len

2020-10-31 11:20:49 103

原创 884. 两句话中的不常见单词

884. 两句话中的不常见单词给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。返回所有不常用单词的列表。您可以按任何顺序返回列表。示例 1:输入:A = “this apple is sweet”, B = “this apple is sour”输出:[“sweet”,“sour”]示例 2:输入:A = “apple apple”, B = “ban

2020-10-30 09:08:28 225

原创 412. Fizz Buzz

412. Fizz Buzz写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[“1”,“2”,“Fizz”,“4”,“Buzz”,“Fizz”,“7”,“8”,“Fizz”,“Buzz”,“11”,“Fizz”,“13”,“14”,“FizzBuzz”]解没什么好说的,,辨

2020-10-29 17:41:30 108

原创 509. 斐波那契数

509. 斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1.示例 2:输入:3输出:2解释:F(3) = F(2) + F(1) = 1 + 1

2020-10-28 17:38:42 84

原创 1207. 独一无二的出现次数

1207. 独一无二的出现次数给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。示例 1:输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。示例 2:输入:arr = [1,2]输出:false示例 3:输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]输出

2020-10-27 11:29:31 101

原创 1385. 两个数组间的距离值

1385. 两个数组间的距离值给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 。「距离值」 定义为符合此距离要求的元素数目:对于元素 arr1[i]arr1[i]arr1[i] ,不存在任何元素 arr2[j]arr2[j]arr2[j] 满足 ∣arr1[i]−arr2[j]∣<=d|arr1[i]-arr2[j]| <= d∣arr1[i]−arr2[j]∣<=d 。示例 1:输入:arr1 = [4,5,8], arr2 = [1

2020-10-26 08:46:03 359

原创 191. 位1的个数

191. 位1的个数编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 000000000000000000000000100

2020-10-25 20:56:33 89

原创 1025. 除数博弈

1025. 除数博弈爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:选出任一 xxx,满足 0<x<N0 < x < N0<x<N 且 N%x==0。用 N−xN - xN−x 替换黑板上的数字 NNN 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 False。假设两个玩家都以最佳状态参与游戏。示例 1:输入:2输出:t

2020-10-24 08:39:20 148

原创 292. Nim 游戏

292. Nim 游戏你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。j假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。示例 1:输入:n = 4输出:false解释:如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 3

2020-10-23 08:44:35 56

原创 728. 自除数

728. 自除数自除数 是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为128% 1 == 0 ,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例 1:输入:上边界left = 1, 下边界right = 22输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]注意:每个输入参数的边界满足 1 <=

2020-10-22 19:06:05 110

原创 925. 长按键入

925. 长按键入你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。示例 1:输入:name = “alex”, typed = “aaleex”输出:true解释:‘alex’ 中的 ‘a’ 和 ‘e’ 被长按。示例 2:输入:name = “saeed”, typed = “ssaaedd”输

2020-10-21 09:39:07 129

原创 1512. 好数对的数目

1512. 好数对的数目给你一个整数数组 nums 。如果一组数字(i,j)(i,j)(i,j) 满足 nums[i]==nums[j]nums[i] == nums[j]nums[i]==nums[j] 且 i<ji < ji<j ,就可以认为这是一组 好数对 。返回好数对的数目。示例 1:输入:nums = [1,2,3,1,1,3]输出:4解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始示例 2:输入:n

2020-10-20 08:40:59 93

原创 1470. 重新排列数组

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]解class Solution:

2020-10-19 08:57:04 108 1

原创 1431. 拥有最多糖果的孩子

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

2020-10-18 14:32:51 94

原创 1450. 在既定时间做作业的学生人数

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

2020-10-17 14:31:45 149

原创 771. 宝石与石头

771. 宝石与石头给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出: 0注意:S 和 J 最多含有50个字母。J 中的字符不重复。解题意:

2020-10-16 14:17:33 63

原创 1295. 统计位数为偶数的数字

1295. 统计位数为偶数的数字给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。示例 1:输入:nums = [12,345,2,6,7896]输出:2解释:12 是 2 位数字(位数为偶数)345 是 3 位数字(位数为奇数)2 是 1 位数字(位数为奇数)6 是 1 位数字 位数为奇数)7896 是 4 位数字(位数为偶数)因此只有 12 和 7896 是位数为偶数的数字解一、int−>strint->strint−>str 获取位数

2020-10-15 17:07:49 73

原创 1281. 整数的各位积和之差

1281. 整数的各位积和之差给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。示例 1:输入:n = 234输出:15解释:各位数之积 = 2 * 3 * 4 = 24各位数之和 = 2 + 3 + 4 = 9结果 = 24 - 9 = 15示例 2:输入:n = 4421输出:21解释:各位数之积 = 4 * 4 * 2 * 1 = 32各位数之和 = 4 + 4 + 2 + 1 = 11结果 = 32 - 11 = 21提示:1&

2020-10-14 19:56:06 80

原创 1486. 数组异或操作

1486. 数组异或操作给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果注: “^” 为按位异或 XOR 运算符。(二进制)示例 1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。示例 2:输入:n =

2020-10-13 21:43:22 378

原创 1342. 将数字变成 0 的操作次数

1342. 将数字变成 0 的操作次数难度:简单给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。示例 1:输入:num = 14输出:6解释:步骤 1) 14 是偶数,除以 2 得到 7 。步骤 2) 7 是奇数,减 1 得到 6 。步骤 3) 6 是偶数,除以 2 得到 3 。步骤 4) 3 是奇数,减 1 得到 2 。步骤 5) 2 是偶数,除以 2 得到 1 。步骤 6) 1 是奇数,减 1 得到

2020-10-11 20:00:38 117

原创 LCP 01. 猜数字

LCP 01. 猜数字小A和小B在玩猜数字。小B每次从1, 2, 3中随机选择一个,小A每次也从1, 2, 3中选择一个猜。他们一共进行三次这个游戏,请返回小A猜对了几次?输入的guess数组为小A每次的猜测,answer数组为小B每次的选择。guess和answer的长度都等于3。示例 1:输入:guess = [1,2,3], answer = [1,2,3]输出:3解释:小A 每次都猜对了。解一、class Solution: def game(self, guess:

2020-10-11 14:48:53 71

原创 LeetCode分类练习-Task04:查找2

续接LeetCode分类练习-Task03:查找1刷题1.两数之和

2020-08-27 12:27:09 179

原创 454. 四数相加 II

454. 四数相加 II给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。例如:输入: A = [ 1, 2] B = [-2,-1] C = [-1, 2] D = [ 0, 2]输出:

2020-08-27 12:26:06 191

原创 49. 字母异位词分组

49. 字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。说明:所有输入均为小写字母。不考虑答案输出的顺序。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/group-anagra

2020-08-27 11:03:18 148

原创 16. 最接近的三数之和

16. 最接近的三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入: nums = [-1,2,1,-4], target = 1输出: 2解释: 与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3<=nums.length<=1033 <= nums.length <= 10^33

2020-08-26 21:03:11 132

原创 220. 存在重复元素 III

220. 存在重复元素 III在整数数组 nums 中,是否存在两个下标 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值小于等于 t ,且满足 i 和 j 的差的绝对值也小于等于 ķ 。如果存在则返回 true,不存在返回 false。示例 1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: true来源:力扣(LeetCode)链接:h

2020-08-26 17:34:45 210

原创 447. 回旋镖的数量

447. 回旋镖的数量给定平面上 n 对不同的点,“回旋镖” 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序)。找到所有回旋镖的数量。你可以假设 n 最大为 500,所有点的坐标在闭区间 [-10000, 10000] 中。示例:输入: [[0,0],[1,0],[2,0]]输出: 2解释: 两个回旋镖为 [[1,0],[0,0],[2,0]] 和 [[1,0],[2,0],[0,0]]来源:力扣(LeetCode)

2020-08-26 13:17:01 145

原创 219. 存在重复元素 II

219. 存在重复元素 II给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/contains-duplicate-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。哈

2020-08-26 10:34:06 346

原创 18. 四数之和

18. 四数之和给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意: 答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[-1, 0, 0, 1],[-2, -1, 1, 2],[-2, 0, 0, 2]

2020-08-25 16:07:48 92

原创 15. 三数之和

15. 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意: 答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2] ]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum著作

2020-08-25 11:38:41 151

原创 LeetCode分类练习-Task03:查找1

查找/搜索得益于大二下的《数据结构与算法》,我对于排序和查找进行了比较系统的学习(在我看来排序的前提就是查找,找不到怎么排序呢)。想要在一组数据中查找想要的东西,就不可避免的需要遍历数据,那么有效的缩小需要遍历的范围,从而提升程序运行速度,就是算法存在的意义,对于不同种类的数据,需要不同的算法去适合和优化。python有与查找相关的功能和函数,例如简单常用的↓str.find(str, beg=0, end=len(string))for _ in str这些功能和函数具有普适性,对于绝大多数

2020-08-24 15:45:49 95

原创 451. 根据字符出现频率排序

451. 根据字符出现频率排序根据字符出现频率排序给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入: “tree”输出: “eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。哈希表学习新函数Counter(s).most_common()Python count() 方法用于统计字符串里某个字符出现的次数,记录成字典。可选参数为在字符串搜索的开始与结束位置。Cou

2020-08-24 15:45:24 176

原创 540. 有序数组中的单一元素

540. 有序数组中的单一元素给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。注意: 您的方案应该在 O(log n)时间复杂度和 O(1)空间复杂度中运行。示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-element-in-a-sort

2020-08-24 11:46:30 109

原创 350. 两个数组的交集 II

350. 两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。示例 1:**输入:**nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii著作权归领扣网络所有。商业转载请联系

2020-08-24 10:55:48 74

原创 349. 两个数组的交集

349. 两个数组的交集给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]解题思路一:用set()set()set()提取两个数组中的元素再进行比较class Solution: def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]: return list(set(nums1)&s

2020-08-24 10:39:38 65

原创 290. 单词规律

290. 单词规律给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的"遵循"指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。说明: 你可以假设 pattern 只包含小写字母, str 包含了由单个空格分隔的小写字母。示例1:输入: pattern = “abba”, str = “dog cat cat dog”输出: true示例 2:输入: pattern = “abba”

2020-08-23 20:56:11 103

空空如也

空空如也

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

TA关注的人

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