摘要: 题目如下: 解题思路:本题比较简单。题目要求的是字符只能在相同的奇偶性之间互换,即奇数位只能和奇数位交换,偶数位只能和偶数位换。根据这一准则,对于任意一个字符串,我们可以分别求出其奇数位和偶数位的部分,然后分别进行排序,再合并,这样就能得到一个special value,例如 "abcd",奇数位为 阅读全文
posted @ 2018-09-01 10:01 seyjs 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:对于v = grid[i][j],其表面积为s = 2 + v*4 。接下来只要在判断其相邻四个方向有没有放置立方体,有的话减去重合的面积即可。 代码如下: 阅读全文
posted @ 2018-09-01 10:00 seyjs 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:分别求出所有立方体的个数,各行的最大值之和,各列的最大值之和。三者相加即为答案。 代码如下: 阅读全文
posted @ 2018-09-01 09:59 seyjs 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 解题思路:巨坑的一个题目。一般来说,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) 编辑