![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法刷题
printf("dream");
这个作者很懒,什么都没留下…
展开
-
leetcode刷题记录之137
137、只出现一次的数字 II 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99难度:中等 题目地址:https://leetcode...原创 2020-02-03 22:49:24 · 117 阅读 · 0 评论 -
leetcode刷题记录之1295
1295、统计位数为偶数的数字 给你一个整数数组 nums,请你返回其中位数为偶数的数字的个数。示例 1:输入:nums = [12,345,2,6,7896]输出:2解释:12 是 2 位数字(位数为偶数) 345 是 3 位数字(位数为奇数) 2 是 1 位数字(位数为奇数) 6 是 1 位数字 位数为奇数) 7896 是 4 位数字(位数为偶数) 因此只有 12 ...原创 2020-01-07 19:36:37 · 157 阅读 · 0 评论 -
leetcode刷题记录之540
540、有序数组中的单一元素 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10注意: 您的方案应该在 O(log n)时间复杂度和 O(1)空间复杂度中运行。难度:中等 题目地址:https://lee...原创 2019-12-15 17:54:18 · 161 阅读 · 0 评论 -
leetcode刷题记录之292
292、 Nim 游戏 你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。 你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走...原创 2019-12-11 15:55:23 · 110 阅读 · 0 评论 -
leetcode刷题记录之852
852、山脉数组的峰顶索引我们把符合下列属性的数组 A 称作山脉:A.length >= 3存在 0 < i < A.length - 1 使得A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] ...原创 2019-12-09 22:07:18 · 103 阅读 · 0 评论 -
leetcode刷题记录之1221
1221、分割平衡字符串在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。示例 1:...原创 2019-12-07 17:02:50 · 91 阅读 · 0 评论 -
leetcode刷题记录之704
704、二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5...原创 2019-12-04 21:36:29 · 145 阅读 · 0 评论 -
leetcode刷题记录之287
287、寻找重复数 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间...原创 2019-12-03 12:37:16 · 258 阅读 · 0 评论 -
leetcode刷题记录之1252
1252、奇数值单元格的数目 给你一个 n 行 m 列的矩阵,最开始的时候,每个单元格中的值都是 0。 另有一个索引数组 indices,indices[i] = [ri, ci] 中的 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。 你需要将每对 [ri, ci] 指定的行和列上的所有单元格的值加 1。 请你在执行完所有 indices 指定的增量操作后,返回矩阵中 ...原创 2019-12-02 19:24:42 · 177 阅读 · 0 评论 -
leetcode刷题记录之1266
1266、访问所有点的最小时间平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。你可以按照下面的规则在平面上移动:每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。必须按照数组中出现的顺序来访问这些点。示例 1:输入:points ...原创 2019-12-02 17:35:43 · 141 阅读 · 0 评论 -
leetcode刷题记录之34
34、在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:...原创 2019-12-01 20:46:10 · 118 阅读 · 0 评论 -
leetcode刷题记录之167
167、两数之和 II - 输入有序数组给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。...原创 2019-12-01 10:20:11 · 139 阅读 · 0 评论 -
leetcode刷题记录之88
88、合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:...原创 2019-11-11 19:35:57 · 104 阅读 · 0 评论 -
leetcode刷题记录之896
896、单调数列如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。示例 1:输入:[1,2,2,3]输出:true示例 2:输...原创 2019-11-08 19:47:54 · 120 阅读 · 0 评论 -
leetcode刷题记录之169
169、求众数给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2难度:简单 题目地址:https://leetcode-cn.com/problems/majority-ele...原创 2019-11-07 19:16:48 · 97 阅读 · 0 评论 -
leetcode刷题记录之387
387、字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.注意事项: 您可以假定该字符串只包含小写字母。难度:简单 题目地址:https://leetcode-cn.com/problems/first-unique-char...原创 2019-11-06 19:49:59 · 91 阅读 · 0 评论 -
leetcode刷题记录之58
58、最后一个单词的长度给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明: 一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5难度:简单 题目地址:https://leetcode-cn.com/problems/length-of-last-word/1、C...原创 2019-11-05 16:56:12 · 123 阅读 · 0 评论 -
leetcode刷题记录之1207
1207、独一无二的出现次数原创 2019-11-04 21:02:29 · 135 阅读 · 0 评论 -
leetcode刷题记录之976
976、三角形的最大周长 给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。 如果不能形成任何面积不为零的三角形,返回 0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示:3 <=...原创 2019-11-02 18:50:27 · 169 阅读 · 0 评论 -
leetcode刷题记录之350
350、两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果...原创 2019-11-01 10:39:16 · 111 阅读 · 0 评论 -
leetcode刷题记录之242
242、有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调...原创 2019-10-31 15:34:02 · 116 阅读 · 0 评论 -
leetcode刷题记录之349
349、两个数组的交集给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。难度:简单 题目地址:htt...原创 2019-10-29 12:37:36 · 90 阅读 · 0 评论 -
leetcode刷题记录之206
206、反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?难度:简单 题目地址:https://leetcode-cn.com/problems/reverse-linked-list/...原创 2019-10-28 18:45:17 · 239 阅读 · 0 评论 -
leetcode刷题记录之1046
1046、最后一块石头的重量有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重...原创 2019-10-16 11:31:26 · 120 阅读 · 0 评论 -
leetcode刷题记录之283
283. 移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例 1:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:1、必须在原数组上操作,不能拷贝额外的数组。2、尽量减少操作次数。难度:简单 题目地址:https://leetcode-cn.com/problems/move-zeroes/1...原创 2019-10-15 10:37:51 · 87 阅读 · 0 评论 -
leetcode刷题记录之389
389. 找不同 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。示例 1:输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。难度:简单 题目地址:https://leetcode-cn.com/problems/find-th...原创 2019-10-14 10:08:33 · 166 阅读 · 0 评论 -
leetcode刷题记录之461
461、汉明距离 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 2^31示例:...原创 2019-10-13 13:28:00 · 66 阅读 · 0 评论 -
leetcode刷题记录之485
485、最大连续1的个数 给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。难度:简单 题目地址:https://leetcode-cn.com/problems/ma...原创 2019-09-03 14:27:26 · 173 阅读 · 0 评论 -
leetcode刷题记录之237
删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:...原创 2019-08-23 13:20:59 · 60 阅读 · 0 评论 -
leetcode刷题记录之231
231、2的幂 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 2<sup>0</sup> = 1原创 2019-09-11 08:51:44 · 115 阅读 · 0 评论 -
leetcode刷题记录之633
633、平方数之和 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。示例 1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5示例 2:输入: 3输出: False难度:简单 题目地址:https://leetcode-cn.com/problems/sum-of-square-numbers/1、C语言代...原创 2019-09-10 09:22:54 · 67 阅读 · 0 评论 -
leetcode刷题记录之905
905、按奇偶排序数组 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。示例 1:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示:1 <= A.length <= 50000 <=...原创 2019-08-28 13:22:07 · 127 阅读 · 0 评论 -
leetcode刷题记录之977
977、有序数组的平方 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]示例 2:输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= A.length <= 10000-10000 <= A[i]...原创 2019-08-27 14:11:57 · 133 阅读 · 0 评论 -
leetcode刷题记录之728
728、自除数自除数是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例 1:...原创 2019-08-26 17:52:58 · 289 阅读 · 0 评论 -
leetcode刷题记录之27
27、移除元素 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:...原创 2019-08-26 16:14:58 · 102 阅读 · 0 评论 -
leetcode刷题记录之1108
IP 地址无效化给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。示例 1:输入:address = "1.1.1.1"输出:"1[.]1[.]1[.]1"示例 2:输入:address = "255.100.50.0"输出:"255[.]100[.]50[.]0"提示:给...原创 2019-08-23 01:56:28 · 126 阅读 · 0 评论 -
leetcode刷题记录之771
771. 宝石与石头 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:输入: J = "z...原创 2019-08-23 00:35:29 · 102 阅读 · 0 评论 -
leetcode刷题记录之509
509、斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = ...原创 2019-08-25 21:57:01 · 76 阅读 · 0 评论 -
leetcode刷题记录之344
344、反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"...原创 2019-08-25 21:35:06 · 93 阅读 · 0 评论 -
leetcode刷题记录之35
35、搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6],...原创 2019-08-25 21:22:20 · 89 阅读 · 0 评论