
leetcode
文章平均质量分 52
charles.duan
这个作者很懒,什么都没留下…
展开
-
leetcode 11.盛水最多的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。注意:你不能倾斜容器,n 至少是2。思路:首先想到的是直接用两个循环,计算所有的点构成容器大小,然后选出最大值,但是这样时间复杂度是On^2,时间超限。优...原创 2018-05-11 13:55:20 · 487 阅读 · 0 评论 -
leetcode 15.最接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).思路:和上一题三数之和的思路基本一样,维护一个r...原创 2018-05-15 22:22:10 · 325 阅读 · 0 评论 -
leetcode 15.三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]思路:首先想到的是排序数组两数之和...原创 2018-05-15 22:04:56 · 176 阅读 · 0 评论 -
leetcode 6.Z字形变换
将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:P A H NA P L S I I GY I R之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = "PAYPALISHIRING", numRows ...原创 2018-05-07 21:19:54 · 269 阅读 · 0 评论 -
leetcode 8.字符串转整数(atoi)
实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第一个非空字符序列不是个...原创 2018-05-07 20:53:21 · 183 阅读 · 0 评论 -
leetcode 5.最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思路:以i位置为中心像两边扩散,如果当前子串是回文串则继续扩散,如果不是子串则当前字符串就是以i为中心的最长回文子串。注意回文字符串分奇数和偶数两种情况。class Solu...原创 2018-05-07 20:34:56 · 157 阅读 · 0 评论 -
leetcode 9.回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字...原创 2018-05-06 22:59:17 · 138 阅读 · 0 评论 -
leetcode 3.无重复字符的最长字串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。1.普通版——复杂度O(2n) 采原创 2018-05-05 15:05:02 · 187 阅读 · 0 评论 -
leetcode 2.两数相加
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807链表上的数相加,类似的题可以是字符串的数相加,大数相加...原创 2018-05-05 13:25:44 · 187 阅读 · 0 评论 -
leetcode 1.两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:先将数组遍历一遍,将nums的值和对应下标存入map,再遍历一次数组,然后直接从map中找到key=t...原创 2018-05-05 12:47:29 · 144 阅读 · 0 评论 -
leetcode 14.最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。思路:原创 2018-05-11 15:31:10 · 626 阅读 · 0 评论 -
leetcode 13.罗马数字转整数
罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做...原创 2018-05-11 15:16:39 · 402 阅读 · 0 评论 -
leetcode 12.整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写...原创 2018-05-11 14:46:51 · 1694 阅读 · 0 评论 -
leetcode 19. 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路:首先想到的是先扫描一次链表,得到链表的length,这样倒数第n个节点就是第length...原创 2018-05-15 22:58:10 · 270 阅读 · 0 评论