随笔分类 -  LeetCode

摘要:问题链接 "LeetCode 58. Length of Last Word" 题目解析 求得字符串的最后一个单词的长度。 解题思路 如果从前往后遍历的话,近乎暴力了,先得去除前后空格,遍历时遇到空格计数器清零,最后计数器的值即答案。不建议这样做,费时又费力。 明明可以从后往前遍历的,明显高了一个档 阅读全文
posted @ 2018-03-16 18:16 AlvinZH 阅读(377) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 53. Maximum Subarray" 题目解析 求最大子数组。 解题思路 基本题,有多种方法可以得到答案,这里简单讨论一下。 暴力 双重循环遍历子数组起点和终点,再加一重循环计算和,时间复杂度为 $O(n^3)$,代码就不写了,不可能会用得上的:) 改进 暴力的问 阅读全文
posted @ 2018-03-16 17:27 AlvinZH 阅读(452) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 38. Count and Say" 题目解析 找规律,每一个数字串是上一个数字串的“读法”。比如:n=1时为"1",读作“1个1”,得到n=2时为"11",此时读作“2个1”,得到n=3时为"21",不断读下去,任意n对应的数字串。 解题思路 近乎暴力,直接求解。不断 阅读全文
posted @ 2018-03-16 16:52 AlvinZH 阅读(241) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 35. Search Insert Position" 题目解析 在有序数组中寻找目标值。如果成功找到,则返回其索引下标;否则返回其应该插入的位置下标。 解题思路 看到在有序的数组中寻找目标,第一应该想到 二分 。本题比较简单,直接二分即可。当然先排除一些边界条件更好理 阅读全文
posted @ 2018-03-16 16:35 AlvinZH 阅读(258) 评论(2) 推荐(0)
摘要:问题链接 "LeetCode 28. Implement strStr()" 题目解析 实现函数strStr()。 解题思路 题意很简单,实现 "StrStr" 。这个函数是干什么的呢?简单来说,就是在一个字符串中寻找另一个字符串第一次出现的位置,未找到返回 1。 暴力解法 暴力匹配,直接遍历字符串 阅读全文
posted @ 2018-03-16 15:32 AlvinZH 阅读(275) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 11. Container With Most Water" 题目解析 给定坐标轴上的一些垂线段,任意两条组成“水桶”,求最大存水量。 解题思路 理解题意,任取两条线段,假设横坐标(索引)为left、right,题目要求 $(right left) min(H[left 阅读全文
posted @ 2018-03-13 12:08 AlvinZH 阅读(555) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 8. String to Integer (atoi)" 题目解析 字符串转换成数字。 解题思路 个人认为题目并没有完全讲清楚题意。最初以为需要考虑多种情况,小数啊指数啊什么的,后面发现不是这样的,这题只要关注 字符数字问题 以及 范围问题 。 1.跳过空格字符; 2. 阅读全文
posted @ 2018-03-13 10:52 AlvinZH 阅读(231) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 6. ZigZag Conversion" 题目解析 将一个字符串按之字形图案重新排列,返回新字符串。 解题思路 理解题意,什么叫之字形图案。举个例子,对于字符串"ABCDEFGHIJKLMN": numRows = 1:如下,输出不变,为"ABCDEFGHIJKLMN 阅读全文
posted @ 2018-03-12 16:15 AlvinZH 阅读(326) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 27. Remove Element" 题目解析 删除数组中等于特定值的元素。 解题思路 特简单题。遍历一次,直接计数即可。大都一样的解法,也可参考 "https://leetcode.com/problems/remove element/solution/" 。 参 阅读全文
posted @ 2018-03-12 15:05 AlvinZH 阅读(271) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 26. Remove Duplicates from Sorted Array" 题目解析 给定有序数组,删除其中重复元素,返回新数组长度。 解题思路 由于不是很懂题目的意思,题目要求不要分配额外的数组空间,其实是想说保证空间复杂度为 $O(1)$。 简单题。了解一下, 阅读全文
posted @ 2018-03-12 14:52 AlvinZH 阅读(376) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 21. Merge Two Sorted Lists" 题目解析 给定两个有序的链表,合并成一个有序链表。 解题思路 简单题。建立一个新链表,不断比较两个链表中的元素值,把较小的节点加入到新链表中。注意问题:由于两个输入链表的长度可能不同,最终会有一个链表先完成插入所有 阅读全文
posted @ 2018-03-12 13:48 AlvinZH 阅读(285) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 20. Valid Parentheses" 题目解析 判断字符串是否符合括号匹配原则。 解题思路 典型考察栈的应用。栈的特点是“后进先出”,在本题中,对于左括号,统统进栈,遇到右括号时判断栈顶符号是否匹配。 注意两次判断 栈空 情况。 参考代码 c++ class S 阅读全文
posted @ 2018-03-12 11:42 AlvinZH 阅读(260) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 14. Longest Common Prefix" 题目解析 求字符串数组的最长公共前缀。 解题思路 拍头一想可以想到直接暴力求解,仔细一想会不会有坑。想了半天没有想到什么好方法后,决定暴力一波,没想到过了,确实是简单题啊~ 外循环表示列,即每个字符串第几个字符,内循 阅读全文
posted @ 2018-03-12 11:06 AlvinZH 阅读(231) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 12. Integer to Roman" 题目解析 将普通数字转换成罗马数字。 解题思路 先简单了解一下什么是 "罗马数字" 。 基本字符:I,V,X,L,C,D,M 相应的阿拉伯数字表示为:1,5,10,50,100,500,1000 相同的数字连写、所表示的数等于 阅读全文
posted @ 2018-03-11 14:25 AlvinZH 阅读(380) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 13. Roman to Integer" 题目解析 将罗马数字转换成普通数字。 解题思路 先简单了解一下什么是 "罗马数字" 。 基本字符:I,V,X,L,C,D,M 相应的阿拉伯数字表示为:1,5,10,50,100,500,1000 相同的数字连写、所表示的数等于 阅读全文
posted @ 2018-03-11 13:57 AlvinZH 阅读(307) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 9. Palindrome Number" 题目解析 判断一个数字是否是回文数字。 解题思路 题目已经给出很多提示和注意事项,还要求不能使用额外空间,其实就是想说请直接在数字上操作,不能转换成字符串。另外题目说明直接反转数字会超出范围,其实用long long表示反转结 阅读全文
posted @ 2018-03-11 11:42 AlvinZH 阅读(297) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 7" 题目解析 给定一个32位有符号整数,求其反转数字。 解题思路 如果是简单反转的话,那这道题就太简单了。题目要求判断 溢出问题 ,32位int类型的范围是 2147483648~2147483647。数字反转过后是有可能超出范围的,此时应该返回0。 最简单的想法是, 阅读全文
posted @ 2018-03-11 11:01 AlvinZH 阅读(297) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 3" 题目解析 求字符串的 最长无重复子串 。 解题思路 第一个问题是 子串 ,注意是连续的。 建立一个符号哈希数组 $in[256]$,代表该符号时候出现过,256大小是因为ASCII表共能表示256个字符。初始化为0,代表未出现,当 $in[i] 0$ 时,表示该字 阅读全文
posted @ 2018-03-09 18:43 AlvinZH 阅读(377) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 2" 题目解析 给出两个数字链表,求二者之和,以链表形式返回。 解题思路 简单题。考察链表的应用,建立一个新链表,遍历两个链表,每位两个数字相加,添加一个新节点到新链表后面,flag记录进位问题。注意最高位的进位问题,有可能需要 多添加一个节点。 参考代码 "LeetC 阅读全文
posted @ 2018-03-09 17:46 AlvinZH 阅读(381) 评论(0) 推荐(0)
摘要:问题链接 "LeetCode 1. Two Sum" 题目解析 给定一数字数组及目标和,求数组中和为目标的两个数下标。 解题思路 暴力搜索肯定过不了,时间复杂度为 $O(n^2)$,TLE教你做人。 本题利用map可以轻松过,怎么用呢?简单理解为map可以在两个对象之间建立联系,即(key, val 阅读全文
posted @ 2018-03-09 16:51 AlvinZH 阅读(719) 评论(0) 推荐(0)