随笔分类 - Leetcode
摘要:May 26 2019 UF做算是白给的 压缩下,没Quick union(否则要几把weight),然后比较integer用equals稳点= =顺便尽量别int[]能MAP最好MAP
阅读全文
摘要:最后更新 二刷 11 Jan 2017 看看给的范围可以重复多少次某个句子。 还是用的第一次的做法,统计2个东西。 1)以某一个单词为一行的第一个单词,那么这一行可以重复多少次整个句子。 2)以某一个单词为一行的第一个单词,那么下一行该由哪个单词开始。 repeatTimes[i] 表示以句子中的第
阅读全文
摘要:正常做的,用了645MS。。感觉DFS的时候剪枝有问题。。 为了剪枝可能需要标记一个点的4种情况: 1:滨临大西洋,所有太平洋来的点可以通过; 2:濒临太平洋,所有大西洋来的点可以通过; 3:都不濒临,直接RETURN; 4:都濒临,通过; 这样的话用DP记录情况,应该能做。。 看了答案发现一开始思
阅读全文
摘要:第一反应是建立PQ,多退少补,但是在达到目的前,没法确定某一个元素该在哪边,操作起来很困难。 看了提示是DP,大概明白了。 target是总和的/2,当然如果综合是奇数就直接GG思密达了。 双层遍历,外层nums[i]的所有元素遍历,内层是从0 (i 1)组成的所有组合,加上当前nums[i]组成新
阅读全文
摘要:没什么限定的话,先翻转,在一位一位加,记得进位就行了。。
阅读全文
摘要:变体。上一题是WORD1和WORD2不同,这个是有可能相同。。 没想到什么巧办法,按部就班遍历分情况讨论。。 Java public class Solution { public int shortestWordDistance(String[] words, String word1, Stri
阅读全文
摘要:这个题做了一个多小时,好傻逼。 显而易见计算的话必须知道当前层是第几层,因为要乘权重,想要知道是第几层又必须知道最高是几层。。 用了好久是因为想ONE PASS,尝试过遍历的时候构建STACK,通过和顶端的距离来判定层数,但是其实最后POP的过程相当于又遍历了一次。而且STACK无法O(1) acc
阅读全文
摘要:这个傻逼题。。我没弄明白 这句话的意思,以为只是盖戳的时间是这样,getHits可以是任意值,我用TEST CASE测试了一下,答案的结果是这样。 比如300S之后,getHits(4)还是能得到正确解,结果卡了好久。 看了答案,发现似乎getHits的parameter只会比当前时间要晚。。。我真
阅读全文
摘要:其实就是找最后一段都是9的NODE,比如: 723 99 23 9999 4 9999 1 9 8 需要定位到最后一个全是9的数段的开头,就是那个1,然后看最后一个值是不是9,是的话定位的val+1,然后定位后面都是0: 723 99 23 9999 4 9999 1 9 9 变成 723 99 2
阅读全文
摘要:刷 June 17 2019 第一反应是线段树。 第二反应是我他妈是个傻逼吧,跟线段树有什么关系。 比较直观的做法就是每个都扫一下,然后按部就班+ 。 另一个做法,update[i]代表从i开始往后都要+几,比如 [1, 3 ,1]可以标记为update[1] = 1, update[4] = 1,
阅读全文
摘要:一开始想到的是最简单的剪枝法,到底了就手工设置当前NODE为NULL,在JAVA里似乎必须从上级指针来事先,于是要跨级判断操作。 2MS 看别人有1MS的办法,记录层数,直接添加到LIST里,写了一个试一试。。 其实是做了一个POST ORDER TRAVERSAL。一个NODE的VAL在结果LIS
阅读全文
摘要:主要是看懂题。。 用给你提供的read4去实现readN,是这个意思。。 Java / The read4 API is defined in the parent class Reader4. int read4(char[] buf); / public class Solution exten
阅读全文
摘要:这题有歧义啊。。说的是颜色相同的相邻数量不能超过2个,不是颜色相同的对数不能超过2个,我日了。 搞懂之后就不难了,动态规划。 每一次粉刷都有2种可能,和前一个颜色相同;和前一个颜色不同。 总和是same[n]+diff[n].. 然后,这种一维DP是不需要整个数组的,3个变量就够了,但是这么写更清楚
阅读全文
摘要:今天做的都是E难度的。。懒得写。 这道感觉不是E难度。。 判断是否能SHIFT是使用 俩字母之间相差是一样的,或者+了26,因为Z的下一个是A。 然后好像其实也没什么别的值得说的,总结下就是,按长度先分类,然后同样长度的要再按SHIFT分类。 这题怎么都不像E难度的。。 Java public cl
阅读全文
摘要:最后更新 三刷 13 Jan 2017 貌似像DFS。 String做法里有一种思想,每个char都可以选择考虑或者不考虑。 这里考虑就是缩减为数字; 不考虑就是把前面有的数字先加了,再以当前为缩减起始位置。。 所以你得有2个pointer一个记录缩减的数量,另一个记录指针在字符串中的位置。 09
阅读全文
摘要:感冒之后 睡了2天觉 现在痊愈了 重启刷题进程。。 Google的题,E难度。。 比较的方法很多,应该是为后面的题铺垫的。 题不难,做对不容易,edge cases很多,修修改改好多次,写完发现是一坨。 奉劝大家尽量多想edge cases,想不出来了再提交,别像我似的赶着投胎就提交了。 想完了先自
阅读全文
摘要:做了Zenefits的OA,比面经里的简单多了。。害我担心好久 阴险的Baidu啊,完全没想到用二分,一开始感觉要用DP,类似于极小极大值的做法。 然后看了答案也写了他妈好久。 思路是再不看M的情况下,最终结果的取值范围是[最大的元素,所有元素之和],然后就是用二分在这个范围里找。 注意二分的取舍要
阅读全文
摘要:感冒了,好可怜。。 回文除了最中间的必须成对出现,so..统计一下每个字母的数量,不成对的只有1个有用,其余舍弃就行了。。。 Java public class Solution { public int longestPalindrome(String s) { if(s.length()
阅读全文
摘要:主要就是后FOLLOW UP,如何在不知道总数的情况下,随机选取。 用的是沼气池理论,貌似是统计那块的。 这行的意思是,还是遍历,但是对于某个节点,被选到的几率是1/x,比如第四个,被选中的概率是1/4,但是我们此时不停止遍历,继续遍历,如果以后选中别的,刚才被选中的第四个会被覆盖,所以为了保证第4
阅读全文
摘要:一开始没看见shuffle...觉得同时遍历不就完事了。。 和那个所有数字出现2,有一个出现3次还是什么的一样,CHAR可以完美和INT相互切换。 Java public class Solution { public char findTheDifference(String s, String
阅读全文

浙公网安备 33010602011771号