刷LeetCode
文章平均质量分 50
最近在刷LeetCode,使用了Java,Python,C++三种语言,欢迎大家讨论
liutaotaotaotaotao
在校学生
展开
-
021 合并两个有序链表
LeetCode 第二十一题 合并两个有序链表 合并两个已排序的链表,并将其作为一个新列表返回。新列表应该通过拼接前两个列表的节点来完成。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 方法一使用最原始的办法,定义一个头指针dummy,遍历两个链表,根据链表节点...原创 2018-04-13 10:51:32 · 208 阅读 · 0 评论 -
022 括号生成
LeetCode 第二十二题 括号生成 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ “((()))”, “(()())”, “(())()”, “()(())”, “()()()” ] 方法一使用暴力的方法,将所有的括...原创 2018-04-13 15:47:53 · 447 阅读 · 0 评论 -
023 合并K个排序链表
LeetCode 第二十三题 合并K个排序链表 合并 k 个排序链表,返回合并后的排序链表。尝试分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 本次方法...原创 2018-04-17 10:32:34 · 3661 阅读 · 0 评论 -
024 两两交换链表中的节点
LeetCode 第二十四题 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 这道题并没有特别的难点,代...原创 2018-04-17 11:11:48 · 162 阅读 · 0 评论 -
025 K个一组翻转链表
LeetCode 第二十五题 K个一组翻转链表 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。 示例 : 给定这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1->4-&...原创 2018-04-17 15:47:37 · 2434 阅读 · 1 评论 -
026 删除排序数组中的重复项
LeetCode 第二十六题 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2] 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为...原创 2018-04-17 16:58:01 · 315 阅读 · 0 评论 -
027 移除元素
LeetCode 第二十七题 移除元素 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 > 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3],...原创 2018-04-18 10:37:55 · 467 阅读 · 0 评论 -
028 实现StrStr()
LeetCode 第二十八题 实现StrStr() 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = “hello”, needle = “ll” 输出: ...原创 2018-04-18 14:56:16 · 192 阅读 · 2 评论 -
020 有效的括号
LeetCode 第二十题 有效的括号 给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。 括号必须以正确的顺序关闭,”()” 和 “()[]{}” 是有效的但是 “(]” 和 “([)]” 不是。 这是一道比较简单的题目,参考网址Java public static boolean isValid(Strin...原创 2018-04-12 19:52:48 · 2389 阅读 · 2 评论 -
011 盛最多水的容器
LeetCode 第十一题 盛最多水的容器 给定 n 个正整数 a1,a2,…,an,其中每个点的坐标用(i, ai)表示。 画 n 条直线,使得线 i 的两个端点处于(i,ai)和(i,0)处。请找出其中的两条直 > 线,使得他们与 X 轴形成的容器能够装最多的水。 注意:你不能倾斜容器,n 至少是2。 解题思路首先,这道题中所有的直线都是垂直于X...原创 2018-04-12 11:21:35 · 602 阅读 · 0 评论 -
012 整数转罗马数字
LeetCode 第十二题 整数转罗马数字 给定一个整数,将其转为罗马数字。 输入保证在 1 到 3999 之间。 在这里首先需要了解一下罗马数字的定义:罗马数字百度百科,我们查找了几种方法,发现有一种最简单暴力的方法,非常适合本题。在罗马数字百度百科中有C++的代码,我们将其作为参考。 Java public String intToRoman(int ...原创 2018-04-12 11:22:54 · 226 阅读 · 0 评论 -
013 罗马数字转整数
LeetCode 第十三题 罗马数字转整数 给定一个罗马数字,将其转换成整数。 返回的结果要求在 1 到 3999 的范围内。 Java public int romanToInt(String s) { if (s.isEmpty()) return 0; int sum = 0; ...原创 2018-04-12 11:23:38 · 153 阅读 · 0 评论 -
014 最长公共前缀
LeetCode 第十四题 最长公共前缀 编写一个函数来查找字符串数组中最长的公共前缀字符串。 这道题目的意思是,输入多个字符串,查找这多个字符串的公共前缀。在这里我们参考了解答中的解题方法,共使用了四种方法。方法一Java public static String longestCommonPrefix(String[] strs) { ...原创 2018-04-12 11:24:24 · 289 阅读 · 0 评论 -
015 三数之和
LeetCode 第十五题 三数之和 给定一个包含 n 个整数的数组 S,是否存在属于 S 的三个元素 a,b,c 使得 a + b + c = 0 ?找出所有不重复的三个元素组合使三个数的和为零。 注意:结果不能包括重复的三个数的组合。 例如, 给定数组 S = [-1, 0, 1, 2, -1, -4], 一个结果集合为: [ [-1, 0, 1...原创 2018-04-12 11:25:05 · 207 阅读 · 0 评论 -
016 最接近的三数之和
LeetCode 第十六题 最接近的三数之和 给定一个包括 n 个整数的数组 S,找出 S 中的三个整数使得他们的和与给定的数 target 最接近。返回这三个数的和。假定每组输入只存在一个答案。 例如,给定数组 S = {-1 2 1 -4}, 并且 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 其实...原创 2018-04-12 11:25:56 · 138 阅读 · 0 评论 -
017 电话号码的之母组合
LeetCode 第十七题 电话号码的之母组合 给定一个数字字符串,返回数字所有可能表示的字母组合。 下面给出数字到字母的映射(和电话号码一样)。 输入:数字字符串 “23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 在这里使用了队列思想。对于每一个数字,将其所对应的字母,添加到队列中的每...原创 2018-04-12 11:26:32 · 236 阅读 · 0 评论 -
018 四数相加
LeetCode 第十八题 四数相加 给定一个含有 n 个整数的数组 S,数列 S 中是否存在元素 a,b,c 和 d 使 a + b + c + d = target ? 请在数组中找出所有满足各元素相加等于特定值 的 不重复 组合。 注意:解决方案集不能包含重复的四元组合。 例如,给定数组 S = [1, 0, -1, 0, -2, 2],并且给定 target = ...原创 2018-04-12 11:27:02 · 529 阅读 · 0 评论 -
019 删除链表的倒数第N个节点
LeetCode 第十九题 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点并返回头结点。 例如, 给定一个链表: 1->2->3->4->5, 并且 n = 2. 当删除了倒数第二个节点后链表变成了 1->2->3->5. 说明: 给的 n 始终是有效的。 尝试一次遍历实现。...原创 2018-04-12 11:27:33 · 189 阅读 · 0 评论 -
001 两数之和
初试LeetCode,刷第一道题:需要注意的是,LeetCode中只要提交函数即可,不必注重输入输出,格式问题。 给定一个整数数列,找出其中和为特定值的那两个数。 你可以假设每个输入都只会有一种答案,同样的元素不能被重用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 ...原创 2018-04-11 16:14:05 · 151 阅读 · 0 评论 -
002 两数相加
LeetCode 第二道题 两数相加给定两个非空链表来代表两个非负整数,位数按照逆序方式存储,它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342...原创 2018-04-11 16:18:27 · 201 阅读 · 0 评论 -
003 无重复字符的最长字串
LeetCode 第三题 无重复字符的最长字串给定一个字符串,找出不含有重复字符的 最长子串 的长度。 示例: 给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。 给定 “bbbbb” ,最长的子串就是 “b” ,长度是1。 给定 “pwwkew” ,最长子串是 “wke” ,长度是3。请注意答案必须是一个子串,”pwke” 是 子序列 而不是子串。...原创 2018-04-11 16:21:01 · 231 阅读 · 0 评论 -
004 两个排序数组的中位数
LeetCode第四题 两个排序数组的中位数有两个大小为 m 和 n 的排序数组 nums1 和 nums2 。 请找出两个排序数组的中位数并且总的运行时间复杂度为 O(log (m+n)) 。 示例 1: nums1 = [1, 3] nums2 = [2] 中位数是 2.0 示例 2: nums1 = [1, 2] nums2 ...原创 2018-04-11 16:22:09 · 183 阅读 · 0 评论 -
005 最长回文子串
LeetCode第五题 最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 长度最长为1000。 示例: 输入: “babad” 输出: “bab” 注意: “aba”也是有效答案 示例: 输入: “cbbd” 输出: “bb” 解题思路可以使用暴力法,将字符串中所有的字串找出来,然后验证每一个字串是否是回文;...原创 2018-04-11 16:23:29 · 178 阅读 · 0 评论 -
006 Z字形转换
LeetCode第六题 Z字形转换 将字符串 “PAYPALISHIRING” 以Z字形排列成给定的行数:(下面这样的形状) P A H N A P L S I I G Y I R 之后按逐行顺序依次排列:”PAHNAPLSIIGYIR” 实现一个将字符串进行指定行数的转换的函数: string convert(string ...原创 2018-04-11 16:24:47 · 202 阅读 · 2 评论 -
007 颠倒整数
LeetCode第七题 颠倒整数 给定一个范围为 32 位 int 的整数,将其颠倒。 例 1: 输入: 123 输出: 321 例 2: 输入: -123 输出: -321 例 3: 输入: 120 输出: 21 java public int reverse(int x) { ...原创 2018-04-11 16:25:30 · 148 阅读 · 0 评论 -
008 字符串转整数
# LeetCode 第八题 字符串转整数 实现 atoi,将字符串转为整数。 提示:仔细考虑所有输入情况。如果你想挑战自己,请不要看下面并自己考虑所有可能的输入情况。 说明:这题解释的比较模糊(即没有指定输入格式)。你得事先汇集所有的输入情况。 atoi的要求: 这个函数需要丢弃之前的空白字符,直到找到第一个非空白字符。之后从这个字符开始,选取一个可选的正...原创 2018-04-11 16:26:14 · 144 阅读 · 0 评论 -
009 回文数
LeetCode 第九题 回文数 判断一个整数是否是回文数。不能使用辅助空间。 一些提示: 负整数可以是回文数吗?(例如 -1) 如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。 你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢? 本题有一种比较通用的解决方式。 ...原创 2018-04-11 16:26:59 · 123 阅读 · 0 评论 -
010 正则表达式匹配
LeetCode 第十题 正则表达式匹配实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符。 ‘*’ 匹配零个或多个前面的元素。 匹配应该覆盖整个输入字符串(不是部分字符串)。 函数: bool isMatch(const char *s, const char *p) 例子: isMatch(“a...原创 2018-04-11 16:27:42 · 765 阅读 · 0 评论