
LeetCode
尽人事,听天命。
我叫林克不叫塞尔达
这个作者很懒,什么都没留下…
展开
-
LeetCode【做题】
目录1.LeetCode:349. 两个数组的交集—————————————————————————————————1.LeetCode:349. 两个数组的交集时间:20200426题目给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5],...原创 2020-04-26 17:17:24 · 1439 阅读 · 0 评论 -
LeetCode:415. 字符串相加
题目LeetCode:415. 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。代码class Solution {publ...原创 2020-04-12 16:08:19 · 167 阅读 · 0 评论 -
LeetCode:387. 字符串中的第一个唯一字符
题目LeetCode:387. 字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode”返回 0.s = “loveleetcode”,返回 2.注意事项:您可以假定该字符串只包含小写字母。代码1.暴力法class Solution {public: int firstUniqC...原创 2020-04-11 23:46:24 · 176 阅读 · 0 评论 -
LeetCode:383. 赎金信【复习map】
题目LeetCode:383. 赎金信给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。can...原创 2020-04-05 21:03:41 · 193 阅读 · 0 评论 -
LeetCode:448. 找到所有数组中消失的数字
题目LeetCode:448. 找到所有数组中消失的数字给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2...原创 2020-04-05 17:03:33 · 144 阅读 · 0 评论 -
LeetCode:628. 三个数的最大乘积
题目LeetCode:628. 三个数的最大乘积给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。代码cla...原创 2020-04-05 16:10:30 · 138 阅读 · 0 评论 -
LeetCode:289. 生命游戏
题目LeetCode:289. 生命游戏根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围...原创 2020-04-02 17:13:28 · 220 阅读 · 0 评论 -
LeetCode:189. 旋转数组
题目LeetCode:189. 旋转数组给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:...原创 2020-04-01 17:15:25 · 201 阅读 · 0 评论 -
LeetCode:283. 移动零
题目LeetCode:283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。代码一class Solution {public: void moveZeroes(vector&l...原创 2020-03-31 16:23:48 · 149 阅读 · 0 评论 -
LeetCode:912. 排序数组
题目LeetCode:912. 排序数组给你一个整数数组 nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2:输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000-50000 <= nums[i] <= 500...原创 2020-03-31 15:02:11 · 272 阅读 · 0 评论 -
LeetCode:661. 图片平滑器
题目LeetCode:661. 图片平滑器包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[0, 0, 0],[0, 0, 0],[0, 0...原创 2020-03-30 22:27:40 · 276 阅读 · 0 评论 -
LeetCode:67. 二进制求和
题目LeetCode:67. 二进制求和给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”代码class Solution {public: string addBinary(...原创 2020-03-30 21:37:42 · 175 阅读 · 0 评论 -
LeetCode:面试题62. 圆圈中最后剩下的数字
题目LeetCode:面试题62. 圆圈中最后剩下的数字0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入...原创 2020-03-30 20:40:04 · 167 阅读 · 0 评论 -
LeetCode:1162. 地图分析+模板链接
题目LeetCode:1162. 地图分析你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。我们这里说的距离是『曼哈顿距离』( Manhattan Distance):(x0, y0) 和 (x1,...原创 2020-03-29 22:28:21 · 279 阅读 · 0 评论 -
LeetCode:914. 卡牌分组+复习最大公约数和最小公倍数
题目LeetCode:914. 卡牌分组给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例 1:输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],...原创 2020-03-27 16:16:22 · 343 阅读 · 0 评论 -
LeetCode:892. 三维形体的表面积
题目LeetCode:892. 三维形体的表面积在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。请你返回最终形体的表面积。示例 1:输入:[[2]]输出:10示例 2:输入:[[1,2],[3,4]]输出:34示例 3:输入:[[1,0],[0,2]]输出:...原创 2020-03-25 21:44:42 · 168 阅读 · 0 评论 -
LeetCode:面试题 17.16. 按摩师
题目LeetCode:面试题 17.16. 按摩师一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 号预约,总时长 = ...原创 2020-03-24 17:44:27 · 161 阅读 · 0 评论 -
LeetCode:1290. 二进制链表转整数
题目LeetCode:1290. 二进制链表转整数给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例 2:输入:head = [0]输出:0示例 3:输入:head...原创 2020-03-23 15:08:42 · 300 阅读 · 0 评论 -
LeetCode:237. 删除链表中的节点
题目LeetCode:237. 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -...原创 2020-03-23 14:12:01 · 148 阅读 · 0 评论 -
LeetCode:876. 链表的中间结点
题目LeetCode:876. 链表的中间结点给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样...原创 2020-03-23 13:40:13 · 168 阅读 · 0 评论 -
LeetCode:206. 反转链表
题目LeetCode:206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?代码/** * Definition for singly-linked list. * struct...原创 2020-03-22 23:46:28 · 137 阅读 · 0 评论 -
LeetCode:面试题40. 最小的k个数
题目LeetCode:面试题40. 最小的k个数输入整数数组 arr,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <=...原创 2020-03-20 15:45:37 · 175 阅读 · 0 评论 -
LeetCode:1103. 分糖果 II
题目LeetCode:1103. 分糖果 II排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n...原创 2020-03-19 20:39:44 · 184 阅读 · 0 评论 -
LeetCode:409. 最长回文串
题目LeetCode:409. 最长回文串给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。代码class Sol...原创 2020-03-19 17:41:26 · 145 阅读 · 0 评论 -
LeetCode:836. 矩形重叠
题目LeetCode:836. 矩形重叠矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输...原创 2020-03-18 15:39:34 · 280 阅读 · 0 评论 -
LeetCode:1160. 拼写单词
题目LeetCode:1160. 拼写单词给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的 长度之和。示例 1:输入:wo...原创 2020-03-17 23:39:52 · 167 阅读 · 0 评论 -
LeetCode:面试题 01.06. 字符串压缩
题目字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:“aabcccccaaa”输出:“a2b1c5a3”示例2:输入:“abbccd”输出:“abbccd”解释:“abbccd"压缩后...原创 2020-03-16 20:21:05 · 188 阅读 · 0 评论 -
LeetCode:766. 托普利茨矩阵
题目如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵。给定一个 M x N 的矩阵,当且仅当它是托普利茨矩阵时返回 True。示例 1:输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]输出: True解释:在上述矩阵中, 其对角线为:“[9]”, “[5, 5]”, “[1, 1, 1]”, “[2...原创 2020-03-15 20:28:00 · 200 阅读 · 0 评论 -
LeetCode:300.最长上升子序列
题目LeetCode:300.字符串的最大公因子给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到...原创 2020-03-14 11:32:58 · 160 阅读 · 0 评论 -
LeetCode:1071.字符串的最大公因子
对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。示例 1:输入:str1 = “ABCABC”, str2 = “ABC”输出:“ABC”示例 2:输入:str1 = “ABABAB”, str2 = “ABAB”输出:“AB”...原创 2020-03-13 22:23:45 · 287 阅读 · 0 评论