随笔分类 -  Leetcode

上一页 1 ··· 7 8 9 10 11 12 下一页
摘要:(English version is after the code part) 这个题做起来比看起来容易,然后我也没仔细想,先速度刷完,以后再看有没有改进。 用这个来说: 1 2 4 3 2 2 1 9 去掉1位的话,应该去掉4,得到 1 2 3 2 2 1 9 去掉2位的话,在刚才的基础上,去掉 阅读全文
posted @ 2016-09-19 04:09 哇呀呀..生气啦~ 阅读(1050) 评论(0) 推荐(0)
摘要:被自己蠢哭了。 visit[i][j] = true写成了visit[j][j] = true 我DEBUG了1个多小时。。。。。。。 从最外面那圈的所有O开始顺着相邻的O走,里面那些能走到的O就是不用变成反革命分子的。否则最后变成X,反革命分子。 主要是剪枝,乱七八糟一大堆情况,包括但不限于: 走 阅读全文
posted @ 2016-09-18 07:40 哇呀呀..生气啦~ 阅读(167) 评论(0) 推荐(0)
摘要:DP[0]DP[1]几乎花了2/3的时间来考虑各种CASE,还是没考虑全,这个题思路不难,但是做对很难。。。 dp[i] 就是 0 i的所有可能性。 对于s.charAt(i)来说: 要么他自己作为一个数字,可以是1 9,此时dp[i]和dp[i 1]一样。是0的话就不行。。 要么他和前一位组成两位 阅读全文
posted @ 2016-09-18 04:32 哇呀呀..生气啦~ 阅读(134) 评论(0) 推荐(0)
摘要:这个题还有印象。 其实是个图像题,每个Sring是个vertex,有edge到另一个vertex说明可以转化,当然要自己构建。 构建之后做一个BFS找最短路径。 BFS就一个套路,问题就在于如何判断俩单词是否可以转化。 一刷的时候我记得是看了code ganker的一个巧妙的方法。这次尝试用自己的办 阅读全文
posted @ 2016-09-17 06:42 哇呀呀..生气啦~ 阅读(133) 评论(0) 推荐(0)
摘要:刷 June 20 2019 多了个wildcard,无非是wildcard的时候下一层所有的NODE遍历一下。这个时候需要传下去substring和下层的node,所以多建了个search(string, node) 秒之 阅读全文
posted @ 2016-09-17 04:13 哇呀呀..生气啦~ 阅读(261) 评论(0) 推荐(0)
摘要:一开始知道是PQ之类的,然后在怎么比较上难住了。。(怎么写PQ里的compare()) 一位一位比较是可以的,但是特殊情况很难处理,比如如何比较121 12,和128 12. 然后看答案发现一刷用的办法是组合成AB或者BA比较,年轻时的我真是太机智了。。 最后就是0的处理,要处理leading 0s 阅读全文
posted @ 2016-09-17 03:25 哇呀呀..生气啦~ 阅读(98) 评论(0) 推荐(0)
摘要:一开始in order traverse 然后加入到STACK里,最后一个一个POP STACK里的元素,POP出就和堆顶比较,不大于就说明不符合规定。 AC了,不过7MS。问题在于必须遍历一次,然后再重新遍历STACK,可能提前结束判断。 需要一个在遍历时一旦发现不符合规定直接停止的办法。 其实还 阅读全文
posted @ 2016-09-17 03:09 哇呀呀..生气啦~ 阅读(181) 评论(0) 推荐(0)
摘要:和上一题没啥区别,只不过要记录顺序。 一开始Queue里的是out degree是0 的,从哪个开始都一样,也可以一下子都拿出来。 以后每找到一个,就加到RES里,最后看情况返还就行了。。 Java public class Solution { public int[] findOrder(int 阅读全文
posted @ 2016-09-17 01:43 哇呀呀..生气啦~ 阅读(144) 评论(0) 推荐(0)
摘要:这个题有俩EDGE CASE不容易想到。 一个是没有路径是返还“/"不是"" 另一个是有可能出现a//b这种情况,split会分出一个空字符串 然后就是EASY难度的了。。 Java public class Solution { public String simplifyPath(String 阅读全文
posted @ 2016-09-16 11:25 哇呀呀..生气啦~ 阅读(108) 评论(0) 推荐(0)
摘要:比较典型的动态规划。一刷的时候看code_ganker做法,对他局部 全局的想法很震惊,五体投地。 让乘积最大有2种来源: 2个正数相乘,越来越大。 2个负数相乘,也可以变大。 所以最终结果可能是正数乘以正数,也可能是一个非常小的负数乘以另一个负数,然后一下子牛逼了。。 所以既需要保留最大的正数,也 阅读全文
posted @ 2016-09-16 11:02 哇呀呀..生气啦~ 阅读(119) 评论(0) 推荐(0)
摘要:很无聊的一个数学题。 需要知道2个公式 计算幂函数的。。 主要问题就是指数太大,a^b中的b太大。。 要分解。 23^1335 = { (23^1330)%mod (23^5)%mod} % mod 然后一开始的 (23^1330)%mod = ((23 ^133)%mod)^10 原式就是 ((2 阅读全文
posted @ 2016-09-16 08:38 哇呀呀..生气啦~ 阅读(145) 评论(0) 推荐(0)
摘要:需要知道以下几点: XOR 返还不一样,不一样的相加那么结果是1。 AND 返还进位,进位之后肯定是0. 相当于原题变为A+B之后,算2部分,第一部分是相加之后没进位的那些bits,都是1,第二部分是进位的那些bits. 两部分相加就行了。 用迭代,停止的情况是第二部分是0。。 public int 阅读全文
posted @ 2016-09-16 08:38 哇呀呀..生气啦~ 阅读(108) 评论(0) 推荐(0)
摘要:这个题的思路是动态规划,DP[n]代表能组成n的组合数。算1 n就可以,因为都是正数。 算dp[n]的时候遍历num[1] to num[n] index = i 如果i = nums[m]) dp[n] = dp[n] + dp[n nums[m]]; } } return dp[target]; 阅读全文
posted @ 2016-09-16 08:34 哇呀呀..生气啦~ 阅读(680) 评论(0) 推荐(1)
摘要:这个傻屌题,二刷思路一下子就找到了,问题是edge case多的一逼,其实难就难在如何处理相等的2个元素。比如记录相等前的正负判断,这个还好说。 一上来就相等怎么办,必须解决这种情况,反正和麻烦。。 Java public class Solution { public int wiggleMaxL 阅读全文
posted @ 2016-09-16 08:32 哇呀呀..生气啦~ 阅读(133) 评论(0) 推荐(0)
摘要:遍历原数组,当前I,然后随机nextInt(length i),两个SWAP,就表示随便选了一个放到I了,然后再看I+1,I+2。。到最后就行了。 int[] origin; int[] res; Random rdm = new Random(); public Solution(int[] nu 阅读全文
posted @ 2016-09-16 08:28 哇呀呀..生气啦~ 阅读(140) 评论(0) 推荐(0)
摘要:用DFS来做,先弄开头是1的,再弄开头是1的里面开头是1的,再开头是1的里面开头是1的里的开头是1的,再。。。 是吧…… 比N大了BREAK就行。 注意第一个循环是1 9,往后的循环是0 9。 阅读全文
posted @ 2016-09-16 08:27 哇呀呀..生气啦~ 阅读(107) 评论(0) 推荐(0)
摘要:用int array记录可用字母数量 0的时候说明GG了 public boolean canConstruct(String ransomNote, String magazine) { if(ransomNote.length() magazine.length()) return false; 阅读全文
posted @ 2016-09-16 08:27 哇呀呀..生气啦~ 阅读(84) 评论(0) 推荐(0)
摘要:括号题一般都是stack.. 一开始想的是存入STACK的是SRING,然后POP出括号在构建新的NestedInteger放到另一个里面,但是操作起来费时费力。 后来猛然发现其实可以直接吧NestedInteger作为Object放入Stack里。 这种直接往堆顶元素里放的办法一定要注意。 然后就 阅读全文
posted @ 2016-09-16 08:26 哇呀呀..生气啦~ 阅读(462) 评论(0) 推荐(0)
摘要:一开始觉得是不是有什么巧办法,就先BRUTE FORCE。 发现似乎没什么巧办法。 思路是用2个pointers一个标记短string位置,另一个是长string。 找到就p1++,p2++ 找不到就p2++ 然后用indexOf,似乎快很多。 (https://discuss.leetcode.c 阅读全文
posted @ 2016-09-16 08:22 哇呀呀..生气啦~ 阅读(246) 评论(0) 推荐(0)
摘要:看起来很难的样子,隐约觉得要动态规划。 先用笨办法,基本就是枚举。。果然TLE。 Java public class Solution { int res = 0; public int longestSubstring(String s, int k) { int[] map = new int[ 阅读全文
posted @ 2016-09-16 08:19 哇呀呀..生气啦~ 阅读(882) 评论(1) 推荐(0)

上一页 1 ··· 7 8 9 10 11 12 下一页