随笔分类 -  Leetcode

上一页 1 ··· 8 9 10 11 12
摘要:搜词,一个字母只能用一遍。 比较简单,无非是看4个方向…… public boolean exist(char[][] board, String word) { if (board == null) return false; int row = board.length; int col = b 阅读全文
posted @ 2016-09-16 06:51 哇呀呀..生气啦~ 阅读(215) 评论(0) 推荐(0)
摘要:二刷尝试了别的办法,用MAP代表关注列表。 然后不初始化,但是只要有用户被使用,而他又不在MAP里,就把他加进去,然后让他关注自己。。 但是这样做超时了。 问题在于这个题解法太多,有很多不同的情况。 STACK记录所有推,然后找10个,那太难了,可能某个用户关注的只是几亿里面的某些人,搜索起来很要命 阅读全文
posted @ 2016-09-16 06:45 哇呀呀..生气啦~ 阅读(169) 评论(0) 推荐(0)
摘要:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 一刷我记得用的是12 36 98 74 这种方式,然后往里一层。 遇到长宽是1(比如刚才第二层就剩1个5了)和2([1,2],[3,4])的就只遍历,不往里。但是很麻烦,二刷换了个方法。。 Java public c 阅读全文
posted @ 2016-09-16 05:29 哇呀呀..生气啦~ 阅读(131) 评论(0) 推荐(0)
摘要:先找中点.. 1 2 3 4 5 6 7 8 后半部分反转.. 1 2 3 4 8 7 6 5 分别链接。。 1 8 2 7 3 6 4 5 这种题思路不难,但是操作起来比较繁琐,每次做完一堆变量。 想不用这么多变量,就要用P1 P2这种名字上毫无意义的指针。。否则会误导善良,天真,无暇,无辜的群众 阅读全文
posted @ 2016-09-15 09:39 哇呀呀..生气啦~ 阅读(114) 评论(0) 推荐(0)
摘要:这个题真是做得我想打人了。我生起气来连自己都打。 一开始quick select没啥可说的。但是in place把老命拼了都没想出来。。 看网上的答案是3 partition,MAP式子一看就由衷地反胃。。 老子不管了,就O(n)。。 阅读全文
posted @ 2016-09-15 08:58 哇呀呀..生气啦~ 阅读(643) 评论(0) 推荐(0)
摘要:莫名奇妙找了个奇怪的规律。 每次用大的减小的,然后差值和小的再减,减减减减减减到差值=0为止。(较小的数 和 差值 相等为止,这么说更确切) 然后看能不能整除就行了。 有些特殊情况。 看答案是用GCD做的,2行就写出来了,但是不是很理解。 Ax + By = z,A B为正负 int,就是有接。。神 阅读全文
posted @ 2016-09-15 05:52 哇呀呀..生气啦~ 阅读(118) 评论(0) 推荐(0)
摘要:刷 July 15 2019 乘法,不同的是,不能一位一位的算了,比如: M位乘以N位,结果最多是M + N位,所以定义个int[M + N]记录中间解 java public String multiply(String num1, String num2) { int[] res = new i 阅读全文
posted @ 2016-09-15 05:18 哇呀呀..生气啦~ 阅读(139) 评论(0) 推荐(0)
摘要:就是先加,加到其中一个是NULL 都是NULL 就看进不进位,进位就加1 返还RES.NEXT 其中一个不是的话 找到不是的那个 再加,最后再看进不进位 主要就是加完之后有2次进位要注意 逻辑上不难 琐碎太多 二刷。 感觉没什么巧办法,就是楞做,楞做也不难。 要点有2个: 处理进位 处理NULL 三 阅读全文
posted @ 2016-09-15 03:01 哇呀呀..生气啦~ 阅读(130) 评论(0) 推荐(0)
摘要:跟符号还有运算顺序有关的基本就是STACK来做。 里面类型Sring或者Integer都可以,但是免不了来回转换。 Java public class Solution { public int evalRPN(String[] tokens) { if(tokens.length == 0) re 阅读全文
posted @ 2016-09-14 12:56 哇呀呀..生气啦~ 阅读(101) 评论(0) 推荐(0)
摘要:刷 July 03 2019 这个题比较诡异。题里说的unique是指任何VAL是1的点其实都是指向1个。 做法是先走一遍,记录所有的已经存在的node: Node[100]。 复制一遍记录的所有Node,此时复制的只有里面的val,复制出的copyNode的neighbor还没做好,也就是说复制出 阅读全文
posted @ 2016-09-14 12:44 哇呀呀..生气啦~ 阅读(158) 评论(0) 推荐(0)
摘要:刷 June 20 2019 白给的。 时间复杂度都和str的长度有关。这个结构其实就是空间换时间 Node[26] 来做也行. nextLevel[tempChar 'a'] = new Node()这样 阅读全文
posted @ 2016-09-14 02:45 哇呀呀..生气啦~ 阅读(134) 评论(0) 推荐(0)
摘要:动态规划里例题,硬币问题。 p[i] = dp[i coin[j]] + 1; 注意i 阅读全文
posted @ 2016-09-13 14:45 哇呀呀..生气啦~ 阅读(137) 评论(0) 推荐(0)
摘要:随机返还target值的坐标(如果存在多个target). 不太明白为什么这个题是M难度的。 无非是要么弄TABLE之类的,开始麻烦点,但是pick的时候直接PICK出来就行了。 要么开始简单点,都存了,选的时候再随机选。 前者各种溢出。。貌似memory在leetcode比较值钱。。就用后者 Ja 阅读全文
posted @ 2016-09-13 13:50 哇呀呀..生气啦~ 阅读(355) 评论(0) 推荐(0)
摘要:找到排列组合的第K个 一开始用backtrack,成功组合到第K个的时候返还。 果然TLE。。 然后看规律。 比如N = 4 1 2 3 4 2 1 3 4 3 1 2 4 4 1 2 3 就是4个 N=3的排列组合 同理 3 就是 3 个 N = 2的组合 二刷。 回头看自己一刷,觉得自己好牛逼。 阅读全文
posted @ 2016-09-13 13:27 哇呀呀..生气啦~ 阅读(159) 评论(0) 推荐(0)
摘要:呃,楞做应该不行即使知道 (long)x) R = (int)M 1; else L = (int)M + 1; } if(L L == x) return L; else return L 1; } } 注意二分用的是Yes Left No Right。 找到就是Left,找不到就是返还的靠右边的 阅读全文
posted @ 2016-09-13 11:37 哇呀呀..生气啦~ 阅读(120) 评论(0) 推荐(0)
摘要:nlogn对于LIST来说只能是merge sort了。 quick sort没法倒退,不适用于singly list。 length = 3,找到中间,前后分别排序,再merge,其实就是典型的merge sort + node management. Java public class Solu 阅读全文
posted @ 2016-09-13 11:16 哇呀呀..生气啦~ 阅读(120) 评论(0) 推荐(0)
摘要:先正统做法。 结果TLE 考虑下别的做法。 不管是/2 +1 1都是1 bit操作,从bit上入手。 8 = 1 0 0 0 需要右移3次。 9 = 1 0 0 1 1 /2 /2 /2 基本思路是; 如果是偶数,最右位(RMB)是0,直接/2; 如果是奇数,通过+ 去掉RMB的1. 但是+ 还是有 阅读全文
posted @ 2016-09-13 10:46 哇呀呀..生气啦~ 阅读(629) 评论(0) 推荐(0)
摘要:一开始没察觉到0123 3012 2301 而不是 0123 1230 2301 的原因,所以也没找到规律,一怒之下brute force.. Java public int maxRotateFunction(int[] A) { if(A.length == 0) return 0; int r 阅读全文
posted @ 2016-09-13 10:45 哇呀呀..生气啦~ 阅读(162) 评论(0) 推荐(0)
摘要:图像题,没觉得有什么简单的办法,貌似可以用Union Find来解。 感觉有2种思路,一种是先全部构建好每2个点的weight,然后直接遍历queires[][]来抓取答案。 一种是只构建简单的关系图,然后通过DFS来一一找寻要求的答案。 做了一会好他妈的麻烦,最后参考了(http://blog.c 阅读全文
posted @ 2016-09-13 10:43 哇呀呀..生气啦~ 阅读(594) 评论(0) 推荐(0)

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