Fork me on GitHub

随笔分类 -  算法虐我千百遍.lintcode

lintcode题集
摘要:直接硬搜就可以了,只是需要考虑k为0的情况。 题目来源: http://www.lintcode.com/zh-cn/problem/digit-counts/# 阅读全文
posted @ 2017-11-26 04:11 CC11001100 阅读(233) 评论(0) 推荐(0) 编辑
摘要:这些一次遍历搞定的,套路无非都是在遍历的时候就记录数据的状态,然后根据遍历到的当前的数据的状态来修改最终结果,当遍历完了的时候结果也就确定了。 题目来源: http://www.lintcode.com/zh-cn/problem/longest-words/ 阅读全文
posted @ 2017-11-26 04:02 CC11001100 阅读(172) 评论(0) 推荐(0) 编辑
摘要:简单粗暴 题目来源: http://www.lintcode.com/zh-cn/problem/check-sum-of-square-numbers/ 阅读全文
posted @ 2017-11-26 03:55 CC11001100 阅读(902) 评论(5) 推荐(0) 编辑
摘要:直接使用递归的方法会导致TLE,加个缓存就好了: 或者使用迭代法: 题目来源: http://www.lintcode.com/zh-cn/problem/fibonacci/ 阅读全文
posted @ 2017-11-26 03:48 CC11001100 阅读(305) 评论(0) 推荐(0) 编辑
摘要:使用标记的方式,先遍历一遍B,出现一次就记录一次出现次数,然后遍历A,将记录的B的出现次数消去,最后检查一下记录的标记位是不是都消去了,总共需要检查三次,即进行三次O(n)的遍历。 然后总结出规律如果A的字符长度小于B的字符长度时,A不可能完全包含B,所以做一个优化处理,先检查一下长度,如果能够确定 阅读全文
posted @ 2017-11-26 03:25 CC11001100 阅读(186) 评论(0) 推荐(0) 编辑
摘要:思路: 最简单的方法,依次遍历比较就可以了。 AC代码:/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * t... 阅读全文
posted @ 2017-11-22 02:16 CC11001100 阅读(186) 评论(0) 推荐(0) 编辑
摘要:使用一个Map维护数字出现的次数,使用一个链表维护只出现一次的数,使用一个变量记录是否找到过终止数字。 AC代码:public class Solution { /* * @param : a continuous stream of numbers * @param : a number * @return: returns the fir... 阅读全文
posted @ 2017-11-09 23:20 CC11001100 阅读(641) 评论(0) 推荐(0) 编辑
摘要:分治问题,可以把整棵树看做是由一颗颗只有三个节点组成的小树,一颗树的构成是根节点、左子树、右子树,这样只需要从左子树找出一个最大的节点,从右子树找出一个最大的节点,然后与根节点三个取个最大的,就是最终的结果了。 AC代码:/** * Definition of TreeNode: * public class TreeNode { * public int val; * ... 阅读全文
posted @ 2017-11-09 22:38 CC11001100 阅读(348) 评论(0) 推荐(0) 编辑
摘要:输入的n可以分为两种情况: 1. 如果n是3的倍数的话,不论A怎么拿B都可以拿(3-A拿的个数)来使其保持是3的倍数,他就一定能拿到最后一块,所以n是3的倍数的话B必胜 2. 如果n不是3的倍数的话,那么A就能够拿1或者2块使其变为3的倍数,就相当于B变成了第一种情况中的A,所以n不是3的倍数的话A必胜 AC代码:class Solution: """ @param: ... 阅读全文
posted @ 2017-11-06 19:02 CC11001100 阅读(190) 评论(0) 推荐(0) 编辑
摘要:使用两个栈来回倒腾可以实现队列。 AC代码: 题目来源: http://www.lintcode.com/zh-cn/problem/implement-queue-by-two-stacks/ 阅读全文
posted @ 2017-02-04 15:58 CC11001100 阅读(199) 评论(0) 推荐(0) 编辑
摘要:AC代码: 题目来源: http://www.lintcode.com/zh-cn/problem/binary-tree-preorder-traversal/ 阅读全文
posted @ 2017-02-02 23:59 CC11001100 阅读(204) 评论(0) 推荐(0) 编辑
摘要:在v2ex上看到有人提到了这个,感觉挺简单的,没忍住还是试一下.... 基本的染色法。 AC代码: 题目来源: http://www.lintcode.com/zh-cn/problem/number-of-islands/ 阅读全文
posted @ 2017-02-02 23:40 CC11001100 阅读(258) 评论(0) 推荐(0) 编辑
摘要:AC代码: 题目来源: http://www.lintcode.com/zh-cn/problem/insert-node-in-a-binary-search-tree/ 阅读全文
posted @ 2017-01-02 23:18 CC11001100 阅读(579) 评论(0) 推荐(0) 编辑
摘要:Moore's voting algorithm算法:从一个集合中找出出现次数半数以上的元素,每次从集合中去掉一对不同的数,当剩下一个元素的时候(事实上只要满足一个元素出现过半就一定会剩下一个元素的)这个元素就是我们要找的数了。 AC代码: 题目来源: http://www.lintcode.com 阅读全文
posted @ 2017-01-02 23:07 CC11001100 阅读(168) 评论(0) 推荐(0) 编辑
摘要:最开始的想法是先计算出链表的长度length,然后再从头走 length-n 步即是需要的位置了。 AC代码: 然后神奇的快慢指针出场打脸了... 两个指针间距n(慢指针+n=快指针),当快指针到达尾部的时候慢指针所处的位置就是我们需要的啦。 AC代码: 题目来源: http://www.lintc 阅读全文
posted @ 2017-01-02 00:52 CC11001100 阅读(265) 评论(0) 推荐(0) 编辑
摘要:因为字符究竟是什么样的无法确定(比如编码之类的),恐怕是没办法假设使用多大空间(位、数组)来标记出现次数的,集合应该可以但感觉会严重拖慢速度... 还是只做出了O(n^2)... 勉强AC代码: 题目来源: http://www.lintcode.com/zh-cn/problem/unique-c 阅读全文
posted @ 2017-01-02 00:10 CC11001100 阅读(387) 评论(0) 推荐(0) 编辑
摘要:递归那么好为什么不用递归啊...我才不会被你骗...(其实是因为用惯了递归啰嗦的循环反倒不会写了...o(╯□╰)o) AC代码: 题目来源: http://www.lintcode.com/zh-cn/problem/invert-binary-tree/ 阅读全文
posted @ 2017-01-01 23:51 CC11001100 阅读(212) 评论(0) 推荐(0) 编辑
摘要:AC代码: 题目来源: http://www.lintcode.com/zh-cn/problem/delete-node-in-the-middle-of-singly-linked-list/ 阅读全文
posted @ 2017-01-01 23:43 CC11001100 阅读(281) 评论(0) 推荐(0) 编辑
摘要:AC代码: 题目来源: http://www.lintcode.com/zh-cn/problem/identical-binary-tree/ 阅读全文
posted @ 2017-01-01 23:21 CC11001100 阅读(234) 评论(0) 推荐(0) 编辑
摘要:水题 AC代码: 题目来源: http://www.lintcode.com/zh-cn/problem/clone-binary-tree/# 阅读全文
posted @ 2017-01-01 23:14 CC11001100 阅读(177) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示