
LeetCode
CavalryOuO
up
展开
-
12. Integer to Roman(整数转罗马数字)
给定一个整数,将其转为罗马数字。 输入保证在 1 到 3999 之间。解题思路:每一个不同权值的数字都有相应的罗马数字与之对应,创建一个数组,然后用除运算和模运算得到不同权值的数字并对应输出即可。class Solution { public static String intToRoman(int num) { String[] romanPieces={"...原创 2018-03-15 09:44:30 · 185 阅读 · 0 评论 -
15. 3Sum
给定一个包含 n 个整数的数组 S,是否存在属于 S 的三个元素 a,b,c 使得 a + b + c = 0 ?找出所有不重复的三个元素组合使三个数的和为零。注意:结果不能包括重复的三个数的组合。例如, 给定数组 S = [-1, 0, 1, 2, -1, -4],一个结果集合为:[ [-1, 0, 1], [-1, -1, 2]]解题思路:题目很简单,关键是怎么...原创 2018-03-28 11:35:18 · 140 阅读 · 0 评论 -
17. Letter Combinations of a Phone Number
给定一个数字字符串,返回数字所有可能表示的字母组合。下面给出数字到字母的映射(和电话号码一样)。 输入:数字字符串 "23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明: 尽管上面的答案是按字典序排列的,但是你的答案原创 2018-04-02 14:53:02 · 190 阅读 · 0 评论 -
9. Palindrome Number(回文数)
判断一个整数是否是回文数。不能使用辅助空间。一些提示:负整数可以是回文数吗?(例如 -1)如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢?public class Solution { public boolean isPalin...原创 2018-03-26 18:30:45 · 142 阅读 · 0 评论 -
8. String to Integer (atoi)(字符串转整数)
实现 atoi,将字符串转为整数。提示:仔细考虑所有输入情况。如果你想挑战自己,请不要看下面并自己考虑所有可能的输入情况。说明:这题解释的比较模糊(即没有指定输入格式)。你得事先汇集所有的输入情况。atoi的要求:这个函数需要丢弃之前的空白字符,直到找到第一个非空白字符。之后从这个字符开始,选取一个可选的正号或负号后面跟随尽可能多的数字,并将其解释为数字的值。字符串可以在形成整...原创 2018-03-26 18:28:06 · 296 阅读 · 0 评论 -
10. Regular Expression Matching(正则表达式匹配)
实现支持'.'和 '*'的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个输入字符串(不是部分字符串)。函数:bool isMatch(const char *s, const char *p)例子:isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa"...原创 2018-03-26 18:31:01 · 358 阅读 · 0 评论 -
7. Reverse Integer(颠倒整数)
给定一个范围为 32 位 int 的整数,将其颠倒。例 1:输入: 123输出: 321例 2:输入: -123输出: -321例 3:输入: 120输出: 21注意:假设我们的环境只能处理 32 位 int 范围内的整数。根据这个假设,如果颠倒后的结果超过这个范围,则返回 0。public class Solution { publi...原创 2018-03-26 12:21:12 · 357 阅读 · 0 评论 -
6. ZigZag Conversion(Z字形转换)
将字符串 “PAYPALISHIRING” 以Z字形排列成给定的行数:(下面这样的形状) P A H N A P L S I I G Y I R之后按逐行顺序依次排列:”PAHNAPLSIIGYIR”实现一个将字符串进行指定行数的转换的函数:string convert(string text, int nRows);convert(“P...原创 2018-03-25 18:01:36 · 460 阅读 · 0 评论 -
5. Longest Palindromic Substring(最长回文子串)
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 长度最长为1000。示例:输入: "babad"输出: "bab"注意: "aba"也是有效答案示例:输入: "cbbd"输出: "bb"解题思路:回文串必定从中心向两边对称,利用这个性质设计算法。需要注意回文串中心可能是一个字符也可能是一对字符。class Solution { public...原创 2018-03-25 17:56:11 · 163 阅读 · 0 评论 -
4. Median of Two Sorted Arrays(两个排序数组的中位数)
有两个大小为 m 和 n 的排序数组 nums1 和 nums2 。请找出两个排序数组的中位数并且总的运行时间复杂度为 O(log (m+n)) 。示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]中位数是 (2 + 3)/2 = 2.5解题思路:因为数组已排序,im...原创 2018-03-25 17:52:21 · 295 阅读 · 0 评论 -
3. Longest Substring Without Repeating Characters(无重复字符的最长子串 )
给定一个字符串,找出不含有重复字符的 最长子串 的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。解题思路:因为Set集原创 2018-03-25 17:45:21 · 156 阅读 · 0 评论 -
2. Add Two Numbers(两数相加)
给定两个非空链表来代表两个非负数,位数按照逆序方式存储,它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807clas...原创 2018-03-25 17:41:54 · 385 阅读 · 0 评论 -
1. Two Sum(两数之和)
给定一个整数数列,找出其中和为特定值的那两个数。你可以假设每个输入都只会有一种答案,同样的元素不能被重用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路: 用HashMap来实现,把nums[i]作为key,数组标号 i 作为value,存入map,然...原创 2018-03-25 17:40:17 · 198 阅读 · 0 评论 -
14. Longest Common Prefix(最长公共前缀)
编写一个函数来查找字符串数组中最长的公共前缀字符串。 解题思路: 1.利用函数stratsWith()来实现。 2.先对字符串数组进行排序,则数组的最长公共子串一定是最小子串和最大子串之间的公共子串。因为,排序后的最小子串和最大子串有不同字符的可能性最大,且不同字符位置最靠前。class Solution { public String longestCommonPrefix(S...原创 2018-03-22 22:45:00 · 190 阅读 · 0 评论 -
11. Container With Most Water(盛最多水的容器 )
给定 n 个正整数 a1,a2,…,an,其中每个点的坐标用(i, ai)表示。 画 n 条直线,使得线 i 的两个端点处于(i,ai)和(i,0)处。请找出其中的两条直线,使得他们与 X 轴形成的容器能够装最多的水。注意:你不能倾斜容器,n 至少是2。解题思路:线之间形成的区域总是受限于短线的高度。此外,线越远,所获得的区域就越多。 我们使用两个指针,一个在开头,一个在数组末尾,构成行长...原创 2018-03-12 22:56:02 · 2686 阅读 · 0 评论 -
13. Roman to Integer(罗马数字转整数 )
给定一个罗马数字,将其转换成整数。 返回的结果要求在 1 到 3999 的范围内。解题思路:罗马数字中如果小数字在大数字前面就相减,小数字在大数字后面就相加。罗马数字中只有一种特殊情况是需要相减的,利用这个性质,从后向前遍历。定义preInt为前一次遍历的数,curInt为本次遍历的数,如果curInt>preInt,则相加。如果,curIntclass Solution { ...原创 2018-03-15 23:48:35 · 249 阅读 · 0 评论 -
16. 3Sum Closest
给定一个包括 n 个整数的数组 S,找出 S 中的三个整数使得他们的和与给定的数 target 最接近。返回这三个数的和。假定每组输入只存在一个答案。例如,给定数组 S = {-1 2 1 -4}, 并且 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).题目思路:参考上个题目的代码,也是使用两端点法,减少时间复杂度。先对数组进行排...原创 2018-03-29 14:17:16 · 120 阅读 · 0 评论