
LeetCode
haoyutiangang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode: 8. 字符串转整数(atoi)
题目 实现 atoi,将字符串转为整数。 提示: 仔细考虑所有输入情况。如果你想挑战自己,请不要看下面并自己考虑所有可能的输入情况。 说明: 这题解释的比较模糊(即没有指定输入格式)。你得事先汇集所有的输入情况。 atoi的要求: 这个函数需要丢弃之前的空白字符,直到找到第一个非空白字符。之后从这个字符开始,选取一个可选的正号或负号后面跟随尽可能多的数字,并将其解释为数字的值。 字符串...原创 2018-04-07 22:50:32 · 195 阅读 · 0 评论 -
LeetCode: 6. 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(“PAYP...原创 2018-04-07 12:07:53 · 915 阅读 · 1 评论 -
LeetCode: 5. 最长回文子串
题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 长度最长为1000。 示例: 输入: "babad" 输出: "bab" 注意: "aba"也是有效答案 示例: 输入: "cbbd" 输出: "bb" 分析 回文子串,从中间往两边判断 一次循环,两种情况:奇数个,偶数个 解题 class Solution { publi...原创 2018-04-07 11:51:04 · 157 阅读 · 0 评论 -
LeetCode: 4. 两个排序数组的中位数
题目 有两个大小为 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 分析 算中...原创 2018-04-07 11:28:18 · 215 阅读 · 0 评论 -
LeetCode: 3. 无重复字符的最长子串
题目 给定一个字符串,找出不含有重复字符的 最长子串 的长度。 示例: 给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。 给定 “bbbbb” ,最长的子串就是 “b” ,长度是1。 给定 “pwwkew” ,最长子串是 “wke” ,长度是3。请注意答案必须是一个子串,”pwke” 是 子序列 而不是子串。 分析 最长不重复子串,需要判断...原创 2018-04-07 11:14:18 · 1059 阅读 · 0 评论 -
LeetCode: 2. 两数相加
题目 给定两个非空链表来代表两个非负整数,位数按照逆序方式存储,它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 分析 加法参数...原创 2018-04-07 10:23:29 · 121 阅读 · 0 评论 -
LeetCode: 1. 两数之和
题目 给定一个整数数列,找出其中和为特定值的那两个数。 你可以假设每个输入都只会有一种答案,同样的元素不能被重用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 分析 数组元素依次两两相加(0 <= i < length, i+1 <...原创 2018-04-07 10:04:31 · 207 阅读 · 0 评论 -
LeetCode: 14. 最长公共前缀
题目 编写一个函数来查找字符串数组中最长的公共前缀字符串。 分析 依次比较 解题 class Solution { public String longestCommonPrefix(String[] strs) { if (strs.length == 0) { return ""; } Str...原创 2018-04-11 08:31:23 · 1706 阅读 · 0 评论 -
LeetCode: 13. 罗马数字转整数
题目 给定一个罗马数字,将其转换成整数。 返回的结果要求在 1 到 3999 的范围内。 罗马数字 罗马数字字母 罗马数字只有7个字母组成,每个字母代码的字如下 字母 数字 M 1000 D 500 C 100 L 50 X 10 V 5 I 1 四个规则 相同的...原创 2018-04-11 08:30:33 · 284 阅读 · 0 评论 -
LeetCode: 12. 整数转罗马数字
题目 给定一个整数,将其转为罗马数字。 输入保证在 1 到 3999 之间。 罗马数字 罗马数字字母 罗马数字只有7个字母组成,每个字母代码的字如下 字母 数字 M 1000 D 500 C 100 L 50 X 10 V 5 I 1 四个规则 相同的数字连写, ...原创 2018-04-11 08:29:47 · 277 阅读 · 0 评论 -
LeetCode: 11. 盛最多水的容器
题目 给定 n 个正整数 a1,a2,…,an,其中每个点的坐标用(i, ai)表示。 画 n 条直线,使得线 i 的两个端点处于(i,ai)和(i,0)处。请找出其中的两条直线,使得他们与 X 轴形成的容器能够装最多的水。 注意: 你不能倾斜容器,n 至少是2。 分析 思路一:暴力双遍历 时间复杂度为 O(n^2) 思路二:双指针 减少循环的核心思路是省去没有必要的遍历...原创 2018-04-09 23:22:37 · 1237 阅读 · 0 评论 -
LeetCode: 10. 正则表达式匹配
题目 实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 '.' 匹配任意单个字符。 '*' 匹配零个或多个前面的元素。 匹配应该覆盖整个输入字符串(不是部分字符串)。 函数: bool isMatch(const char *s, const char *p) 例子: isMatch("aa","a") → false isMatch("aa","aa") → true isMatc...原创 2018-04-09 00:13:30 · 341 阅读 · 0 评论 -
LeetCode: 9. 回文数
题目 判断一个整数是否是回文数。不能使用辅助空间。 一些提示: 负整数可以是回文数吗?(例如 -1) 如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。 你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢? 本题有一种比较通用的解决方式。 分析 负数不是回文数 颠倒数字比较大小 注意用中间...原创 2018-04-07 23:14:54 · 254 阅读 · 0 评论 -
LeetCode: 7. 颠倒整数
题目 给定一个范围为 32 位 int 的整数,将其颠倒。 例 1: 输入: 123 输出: 321 例 2: 输入: -123 输出: -321 例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能处理 32 位 int 范围内的整数。根据这个假设,如果颠倒后的结果超过这个范围,则返回 0。 分析 负号单独处理 /10 进行循环,data*...原创 2018-04-07 13:58:25 · 143 阅读 · 0 评论