【Leetcode】
小呀小二笙
斯人若彩虹,遇上方知有~~~
展开
-
【Leetcode】23. 合并K个排序链表
合并 kkk 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6解1:利用合并两个有序链表的思想,对KKK个排序链表顺序合并/** * Definition for sing...原创 2019-07-22 15:01:09 · 125 阅读 · 0 评论 -
【Leetcode】20.有效的括号 【字符串】
给定一个只包括 ′(′,′)′'(',')'′(′,′)′,′'′{′'′,′'′}′'′,′[′,′]′'[',']'′[′,′]′ 的字符串,判断字符串是否有效。有效字符串需满足...原创 2019-04-24 22:57:28 · 433 阅读 · 0 评论 -
【Leetcode】第132场周赛
1025. 除数博弈爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 NNN 。在每个玩家的回合,玩家需要执行以下操作:选出任一 xxx,满足 0<x<N0 < x < N0<x<N 且 NNN % x==0x == 0x==0 。用 N−xN - xN−x 替换黑板上的数字 NNN 。如果玩...原创 2019-05-03 15:35:15 · 187 阅读 · 0 评论 -
【Leetcode】63. 不同路径 II 【动态规划】
一个机器人位于一个 m∗nm * nm∗n 网格的左上角 (起始点在下图中标记为“StartStartStart” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“FinishFinishFinish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 111 和 000 来表示。说明:mmm 和 nn...原创 2019-05-03 14:45:02 · 168 阅读 · 0 评论 -
【Leetcode】30. 串联所有单词的子串 【字符串】
给定一个字符串 sss 和一些长度相同的单词 wordswordswords。找出 sss 中恰好可以由 wordswordswords 中所有单词串联形成的子串的起始位置。注意子串要与 wordswordswords 中的单词完全匹配,中间不能有其他字符,但不需要考虑 wordswordswords 中单词串联的顺序。示例 1:输入: s = "barfoothefoobarman",...原创 2019-05-03 14:20:46 · 649 阅读 · 0 评论 -
【Leetcode】32. 最长有效括号 【动态规划】
给定一个只包含 ′(′'('′(′ 和 ′)′')'′)′ 的字符串,找出最长的包含有效括号的子串的长度。示例 111:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 222:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"思路:动态规划。1)dp[i]d...原创 2019-04-23 15:48:45 · 1523 阅读 · 3 评论 -
【Leetcode】第133场周赛
1029. 两地调度公司计划面试 2N2N2N 人。第 iii 人飞往 AAA 市的费用为 costs[i][0]costs[i][0]costs[i][0],飞往 BBB 市的费用为 costs[i][1]costs[i][1]costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 NNN 人抵达。示例:输入:[[10,20],[30,200],[400,50],...原创 2019-05-02 15:40:18 · 201 阅读 · 0 评论 -
【Leetcode】62. 不同路径 【动态规划】
一个机器人位于一个 mxnm x nmxn 网格的左上角 (起始点在下图中标记为“StartStartStart” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“FinishFinishFinish”)。问总共有多少条不同的路径?例如,上图是一个7x37 x 37x3 的网格。有多少可能的路径?说明:mmm 和 nnn 的值均不超过 10010010...原创 2019-05-02 15:01:49 · 164 阅读 · 0 评论 -
【Leetcode】17.电话号码的字母组合 【深搜、字符串】
给定一个仅包含数字 2−92-92−9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 111 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。思路:dfsdfsdf...原创 2019-04-23 15:16:03 · 170 阅读 · 0 评论 -
【leetcode】28. 实现strStr() 【字符串】
实现 strStr()strStr()strStr() 函数。给定一个 haystackhaystackhaystack 字符串和一个 needleneedleneedle 字符串,在 haystackhaystackhaystack 字符串中找出 needleneedleneedle 字符串出现的第一个位置 (从000开始)。如果不存在,则返回 −1-1−1。示例 1:输入: hayst...原创 2019-05-02 14:54:26 · 119 阅读 · 0 评论 -
【Leetcode】第134场周赛
5039. 移动石子直到连续三枚石子放置在数轴上,位置分别为 aaa,bbb,ccc。每一回合,我们假设这三枚石子当前分别位于位置 x,y,zx, y, zx,y,z 且 x<y<zx < y < zx<y<z。从位置 xxx 或者是位置 zzz 拿起一枚石子,并将该石子移动到某一整数位置 kkk 处,其中 x<...原创 2019-05-01 22:19:58 · 1151 阅读 · 0 评论 -
【Leetcode】14. 最长公共前缀 【字符串】
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。思路:1)将字符串按长度排序。取最短长度的字符串str...原创 2019-04-18 12:45:34 · 137 阅读 · 0 评论 -
【Leetcode】13. 罗马数字转整数 【字符串】
罗马数字包含以下七种字符: I,V,X,L,C,D和MI, V, X, L,C,D 和 MI,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, ...原创 2019-04-18 12:23:29 · 127 阅读 · 0 评论 -
【Leetcode】44. 通配符匹配 【动态规划】
给定一个字符串 (s)(s)(s) 和一个字符模式 (p)(p)(p) ,实现一个支持 ′?′'?'′?′ 和 ′∗′'*'′∗′ 的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为...原创 2019-04-24 23:10:59 · 210 阅读 · 0 评论 -
【Leetcode】22. 括号生成【字符串】
给出 nnn 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n=3n = 3n=3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]思路:1)全排列。将生成的括号所有可能列出,对每一种可能判断其合法性。class Solution {public: ...原创 2019-05-01 15:20:56 · 157 阅读 · 0 评论 -
【Leetcode】21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解:新建一个链表,比较两个链表值的大小,将小的一方加入到新链表,返回新链表/** * Definition for singly-linked list. ...原创 2019-07-22 14:34:19 · 134 阅读 · 0 评论 -
【Leetcode】19. 删除链表的倒数第N个节点 【链表】
给定一个链表,删除链表的倒数第 nnn 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 nnn 保证是有效的。解:newnewnew一个新头节点指向当前头节点headheadhead,然后让一个指针从新头节点出发走n+1...原创 2019-07-21 15:13:00 · 145 阅读 · 0 评论 -
【Leetcode】15.三数之和 【排序+双指针】
给定一个包含 nnn 个整数的数组 numsnumsnums,判断 numsnumsnums 中是否存在三个元素 $a,b,c $,使得 a+b+c=0?a + b + c = 0 ?a+b+c=0?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0...原创 2019-07-21 14:59:55 · 178 阅读 · 0 评论 -
【Leetcode】11. 盛最多水的容器 【双指针】
给定 nnn 个非负整数 a1,a2,...,ana1,a2,...,ana1,a2,...,an,每个数代表坐标中的一个点 (i,ai)(i, ai)(i,ai) 。在坐标内画 nnn 条垂直线,垂直线 iii 的两个端点分别为 (i,ai)(i, ai)(i,ai) 和 (i,0)(i, 0)(i,0)。找出其中的两条线,使得它们与 xxx 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜...原创 2019-07-21 14:49:44 · 183 阅读 · 0 评论 -
【Leetcode】4. 寻找两个有序数组的中位数 【二分】
给定两个大小为 mmm 和 nnn 的有序数组 nums1nums1nums1 和 nums2nums2nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m+n))O(log(m + n))O(log(m+n))。你可以假设 nums1nums1nums1 和 nums2nums2nums2 不会同时为空。示例 111:nums1 = [1, 3]num...原创 2019-07-21 10:13:37 · 165 阅读 · 0 评论 -
【Leetcode】2.两数相加 【链表】
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 000 之外,这两个数都不会以 000 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...原创 2019-07-05 09:56:00 · 258 阅读 · 0 评论 -
【Leetcode】1.两数之和 【map】
给定一个整数数组 numsnumsnums 和一个目标值 targettargettarget,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以...原创 2019-07-05 09:50:20 · 211 阅读 · 0 评论 -
【Leetcode】第4场双周赛
1118. 一月有多少天指定年份 YYY 和月份 MMM,请你帮忙计算出该月一共有多少天。示例 111:输入:Y = 1992,M = 7输出:31示例 222:输入:Y = 2000, M = 2输出:29示例 333:输入:Y = 1900, M = 2输出:28解:判断是否为闰年,输入月份对应的天数即可class Solution {public: i...原创 2019-07-13 23:50:57 · 249 阅读 · 0 评论 -
【Leetcode】第95场周赛(前三题)
876. 链表的中间结点给定一个带有头结点 headheadhead 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 111:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:...原创 2019-05-15 15:17:51 · 171 阅读 · 0 评论 -
【Leetcode】第135场周赛
1037. 有效的回旋镖回旋镖定义为一组三个点,这些点各不相同且不在一条直线上。给出平面上三个点组成的列表,判断这些点是否可以构成回旋镖。示例 1:输入:[[1,1],[2,3],[3,2]]输出:true示例 2:输入:[[1,1],[2,2],[3,3]]输出:false提示:1. points.length == 32. points[i].length == 2...原创 2019-05-07 17:14:45 · 343 阅读 · 0 评论 -
【Leetcode】第136场周赛 (前三题)
5055. 困于环中的机器人在无限的平面上,机器人最初位于 (0,0)(0, 0)(0,0) 处,面朝北方。机器人可以接受下列三条指令之一:"G""G""G":直走 111 个单位"L""L""L":左转 909090 度"R&a...原创 2019-05-13 22:33:09 · 199 阅读 · 0 评论 -
【leetcode】53. 最大子序和 【动态规划】
给定一个整数数组 numsnumsnums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。思路:判断当前子数组和sumsumsum是否大于000,如果sumsumsum大于000则继续添加数到子数组(寻求更大的子数组),如果小于...原创 2019-05-01 15:27:40 · 116 阅读 · 0 评论 -
【Leetcode】12. 整数转罗马数字 【字符串】
罗马数字包含以下七种字符:I,V,X,L,C,DI, V, X, L,C,DI,V,X,L,C,D 和 MMM。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马...原创 2019-04-17 19:37:13 · 152 阅读 · 0 评论 -
【Leetcode】10. 正则表达式匹配 【字符串、动态规划】
给定一个字符串 (sss) 和一个字符模式 (ppp)。实现支持 ‘...’ 和 ‘∗*∗’ 的正则表达式匹配。‘...’ 匹配任意单个字符。‘∗*∗’ 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (sss) ,而不是部分字符串。说明:sss 可能为空,且只包含从 a−za-za−z 的小写字母。ppp 可能为空,且只包含从 a−za-za−z 的小写字母,以及字符 ... 和 ...原创 2019-04-17 19:05:36 · 834 阅读 · 0 评论 -
【Leetcode】8.字符串转换整数(atoi) 【字符串】
请你来实现一个 atoiatoiatoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,...原创 2019-04-16 16:41:39 · 98 阅读 · 0 评论 -
【Leetcode】6. Z 字形变换【字符串】
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRINGLEETCODEISHIRINGLEETCODEISHIRING” 行数为 333 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOES...原创 2019-04-16 16:30:44 · 171 阅读 · 0 评论 -
【Leetcode】5.最长回文子串 【字符串、动态规划】
给定一个字符串 sss,找到 sss 中最长的回文子串。你可以假设 sss 的最大长度为 100010001000。示例 111:输入: “babadbabadbabad”输出: “babbabbab”注意: “abaabaaba” 也是一个有效答案。示例 222:输入: “cbbdcbbdcbbd”输出: “bbbbbb”思路:1)中心扩展算法。举个很简单的例子,字符串"aba...原创 2019-04-15 17:05:53 · 566 阅读 · 0 评论 -
【Leetcode】3. 无重复字符的最长子串 【字符串】
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbbabcabcbbabcabcbb”输出: 333解释: 因为无重复字符的最长子串是 “abcabcabc”,所以其长度为 333。示例 222:输入: “bbbbbbbbbbbbbbb”输出: 111解释: 因为无重复字符的最长子串是 “bbb”,所以其长度为 111。示例 333...原创 2019-04-15 16:38:52 · 126 阅读 · 0 评论