leetcode
文章平均质量分 61
「已注销」
这个作者很懒,什么都没留下…
展开
-
[LeetCode]343.整数拆分
题目: 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。例如,给定 n = 2,返回1(2 = 1 + 1);给定 n = 10,返回36(10 = 3 + 3 + 4)。注意:你可以假设 n 不小于2且不大于58。思路:①使用dp[i]表示正整数i的最大乘积,则dp[i]=max{dp[i-1]*1,(i-1)*1,...原创 2018-04-23 23:41:57 · 2005 阅读 · 2 评论 -
[LeetCode]91. 解码方法
题目:一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。吐槽:这个题目做的有些头疼,题目对于不能解码的字符串类型没有明确指出,因此做题的时候走了不少弯路。其中能解码的类型只有1~26,其余一概不能解码,,比如0,01,02都不能解码。思路:本题需要讨论的情况比较...原创 2018-06-14 13:46:16 · 902 阅读 · 0 评论 -
[LeetCode]72. 编辑距离
题目:给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符思路:该题目类似于最长公共子序列问题(LCS);字符串word2可以由字符串word1经由3个操作转化而来,所以字符串word2中每个字母都可以由word1某个字符以下4种操作转化而来:①插入;②删除;③修改;④不变。...原创 2018-06-02 22:00:00 · 795 阅读 · 1 评论 -
[LeetCode]97. 交错字符串
题目:给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。思路:题目本质上类似于[LeetCode]62.不同路径。s3字符串的第k个字符可以由两种状态转化而来,即由s1字符串的字符或s2字符串的字符构成;假设s3字符串的第k-1个字符由s1字符串的前i个字符和s2字符串的前j个字符交错构成。则s3字符串的第k个字符由s1字符串的第i+1个字符或者s2字符串的...原创 2018-06-02 21:47:50 · 531 阅读 · 0 评论 -
[LeetCode]5. 最长回文子串
题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。思路:回文串即字符串左右相同,即以一个轴左右对称,例如aba,abba,这两类,所以按轴遍历字符串求出最长的回文子串即可。字符串S[i..j]为回文串,当且仅当S[i+1..j-1]是回文串且S[i]==S[j];所以有状态转移方程:if(num[i]==num[j]) dp[i][j]=dp[i+1]...原创 2018-05-25 22:14:48 · 241 阅读 · 0 评论 -
[LeetCode]10.正则表达式匹配
题目:给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。思路:读完题目后,①首先想到这是两个字符串间比较的题目,因为是在动态规划的标签下做的,所以第一时间想到了LCS的问题,十分类似。而事实上也是如此,个人感觉是十分类似的。②接着想到了自...原创 2018-05-06 18:37:46 · 243 阅读 · 0 评论 -
[LeetCode]650.只有两个键的键盘
题目:最初在一个记事本上只有一个字符 'A'。你每次可以对这个记事本进行两种操作:Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的)。Paste (粘贴) : 你可以粘贴你上一次复制的字符。给定一个数字 n 。你需要使用最少的操作次数,在记事本中打印出恰好 n 个 'A'。输出能够打印出 n 个 'A' 的最少操作次数。思路:尽可能的粘贴多的字符是本题的关...原创 2018-05-12 11:24:11 · 1260 阅读 · 0 评论 -
[LeetCode]152. 乘积最大子序列
题目:给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。思路:本题是求最大乘积,是最大子段和的变种。最大乘积可以由正数*正数和负数*负数得到,因此,需要同时记录下最大值和最小值。状态转移方程:dp[i] = max(maxm*nums[i],minm*nums[i],dp[i-1])maxm = max(maxm*nums[i],minm*nums[i],n...原创 2018-05-11 15:24:14 · 5271 阅读 · 0 评论 -
[LeetCode] 213.打家劫舍Ⅱ
题目:在上次盗窃完一条街道之后,窃贼又转到了一个新的地方,这样他就不会引起太多注意。这一次,这个地方的所有房屋都围成一圈。这意味着第一个房子是最后一个是紧挨着的。同时,这些房屋的安全系统与上次那条街道的安全系统保持一致。给出一份代表每个房屋存放钱数的非负整数列表,确定你可以在不触动警报的情况下盗取的最高金额。思路:本题是打家劫舍Ⅰ 的延伸,在刚开始思考时,没有想到这一点,因此,建立的递推公式过于复...原创 2018-04-19 22:29:57 · 704 阅读 · 0 评论 -
[LeetCode] 198.打家劫舍Ⅰ
题目:你是一个专业的强盗,计划抢劫沿街的房屋。每间房都藏有一定的现金,阻止你抢劫他们的唯一的制约因素就是相邻的房屋有保安系统连接,如果两间相邻的房屋在同一晚上被闯入,它会自动联系警方。给定一个代表每个房屋的金额的非负整数列表,确定你可以在没有提醒警方的情况下抢劫的最高金额。思路:本题的大致意思就是求取一个数组中不相邻的数的最大值。这里,当强盗选取一个房间编号为n去抢劫时,首先需要思考,n号这个房间...原创 2018-04-19 22:15:26 · 220 阅读 · 0 评论 -
[LeetCode]3. 无重复字符的最长子串
题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。思路:1.暴力法:遍历每个子串,并对每个子串进行查重查看是否存在重复的字符。遍历每个子串需要O(n^2)的时间复杂度,查看是否存在重复的字符需要O(n)的时间复杂度,二者为嵌套关...原创 2018-12-23 21:22:52 · 176 阅读 · 0 评论