上一页 1 ··· 51 52 53 54 55 56 57 58 59 ··· 68 下一页
摘要: 题目如下: 解题思路:巨坑的一个题目。一般来说,leetcode这一类题目分为两种形式,一种是问能不能分割/有几种分割的方法,一种是列出所有分割的集合。本题是第二种,但是有一些特别坑的用例,其结果是无法分割,又非常容易超时。因此解题方法需要先判断能不能分割,能的话再计算怎么分割。首先看能不能分割:可 阅读全文
posted @ 2018-09-01 09:58 seyjs 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:DFS或者BFS都行。本题的关键在于减少重复计算。我采用了两种方法:一是用字典dic_ladderlist记录每一个单词可以ladder的单词列表;另外是用dp数组记录从startword开始到wordlist每一个word的最小转换次数,这一点非常重要,可以过滤很多无效的运算 阅读全文
posted @ 2018-09-01 09:57 seyjs 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:本题和【leetcode】97. Interleaving String非常相似,同样可以采用动态规划的方法。记dp[i][j] = 1或者0 表示pattern[0:i]是否匹配string[0:j] ,如果pattern[i] == string[j] 或者 pattern 阅读全文
posted @ 2018-09-01 09:56 seyjs 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:对于任意一个word,要找出在wordlist中是否存在与之能组成回文的其他words,有两种思路。一是遍历wordlist;二是对word本身进行分析,找出能组成回文的words,并判断是否存在于wordlist中。显然,第二种思路比较的次数要少很多。怎么找出能组成回文的wo 阅读全文
posted @ 2018-09-01 09:29 seyjs 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:本题有两个维度(宽和高),必须两个维度同时满足条件才行。我们可以把输入数组按其中一个维度排序,例如按宽从小到大排序,如果宽相等,再比较高。这样的话,对于数组中任意一个元素(信封),能够放入该信封的其他信封一定在该信封所在位置的左边。接下来从头开始遍历数组,因为宽度是递增的,因此 阅读全文
posted @ 2018-09-01 08:29 seyjs 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:本题可以采用动态规划的方法。记dp[i][j]表示用s1的前i个字符和s2的前j个字符能否组成s3的前(i+j)个字符,如果dp[i-1][j]是True的话,只要s1[i] == s3[i-1+j],那么dp[i][j]就为True;同理,如果dp[i][j-1]是True, 阅读全文
posted @ 2018-08-29 19:39 seyjs 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:除法就是减法。但是遇到比较BT的用例 pow(2,31)/1,需要对方法进行改进。改进的方案是依次增大除数,每次对除数扩大两倍。 代码如下: 阅读全文
posted @ 2018-08-27 13:44 seyjs 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:首先把路径以'/'分割成数组,接下来遍历数组,遇到空或者'.'直接删除,遇到'..'删除本身和前一个元素。 代码如下: 阅读全文
posted @ 2018-08-24 07:40 seyjs 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:题目定义的子序列宽度是最大值和最小值的差,因此可以忽略中间值。首先对数组排序,对于数组中任意一个元素,都可以成为子序列中的最大值和最小值而存在。例如数组[1,2,3,4,5,6],对于元素3来说,由左边[1,2]组成的所有子序列都可以以3为最大值的,而右边[4,5,6]组成的所 阅读全文
posted @ 2018-08-21 08:33 seyjs 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:解题方法没啥好说的,按题目要求来,最后一行左对齐,以及空格数不能被均分的时候,从左往右优先分配。 代码如下: 阅读全文
posted @ 2018-08-20 19:20 seyjs 阅读(222) 评论(0) 推荐(0) 编辑
上一页 1 ··· 51 52 53 54 55 56 57 58 59 ··· 68 下一页