随笔分类 -  leetcode

刷题记录~ 学会喜欢自己唷~
[leetcode]_Interleaving String
摘要:下午去蹭了一发新浪的笔试。炒鸡多的网络基础知识,总共18道题,就写了8道左右吧,剩下的全是网络知识,这部分抽时间至少过一过。其中一道算法题,回来跟嘟嘟商量,才发现是leetcode上的原题,连example都没有变,这可是道难度系数5的题,我嘞个去。题目:给定三个字符串s1,s2,s3,判断s3是否... 阅读全文

posted @ 2014-06-06 19:33 匡匡锵锵 阅读(161) 评论(0) 推荐(0)

[leetcode]_Validate Binary Search Tree
摘要:题目:判断一棵二叉树是否合法。要求二叉树满足 左子树所有值 root.val && isValidBST(root.left) && isValidBST(root.right); 8 } 9 10 public int maxValue(TreeNode node){11... 阅读全文

posted @ 2014-06-05 21:34 匡匡锵锵 阅读(114) 评论(0) 推荐(0)

[leetcode]_Binary Tree Level Order Traversal I && II
摘要:题目:给定一棵二叉树,对其进行层次遍历,将遍历结果存入二维链表中。思路:二叉树的层次遍历关键在于使用Queue。复习:Queue的定义。LinkedList实现了Queue接口,因此可用LinkedList来初始化一个Queue。Queue的使用。 1、offer(),入队,当队列满掉时,返回fa... 阅读全文

posted @ 2014-06-05 20:41 匡匡锵锵 阅读(159) 评论(0) 推荐(0)

[leetcode]_根据二叉树的先序遍历(后序遍历) + 中序遍历 重建二叉树
摘要:题目1:Construct Binary Tree from Preorder and Inorder Traversal给定一棵二叉树的先序遍历和中序遍历,求重建二叉树。思路: 1、先序遍历的第一个节点一定是根节点。 2、在中序遍历中找到该根节点的位置(由中序遍历性质,决定其在中部),将中序遍... 阅读全文

posted @ 2014-06-05 19:40 匡匡锵锵 阅读(773) 评论(0) 推荐(0)

[leetcode]_Flatten Binary Tree to Linked List
摘要:题目:将一棵二叉树履平成一个类似Linked-list的东西。思路:该过程类似于二叉树的前序遍历,但是遍历代码,我处理不来参数的变化。没AC。-------->写的很好的解题博客参考上述博客,思路很清楚的写出代码: 1 public void flatten(TreeNode root) { 2 ... 阅读全文

posted @ 2014-06-05 16:12 匡匡锵锵 阅读(141) 评论(0) 推荐(0)

[leetcode]_Binary Tree Inorder Traversal
摘要:题目:二叉树的中序遍历。思路:用递归来写中序遍历非常简单。但是题目直接挑衅说,----->"Recursive solution is trivial"。好吧。谁怕谁小狗。递归代码: 1 List inOrder = new ArrayList(); 2 3 public ... 阅读全文

posted @ 2014-06-05 11:11 匡匡锵锵 阅读(155) 评论(0) 推荐(0)

[leetcode]_K Sum 问题
摘要:问题:K Sum问题是一个问题系列,在一个数组中找K个数的和能够满足题目中要求。从2 Sum 到 3 Sum , 3 Sum Clozet ,4 Sum。。解法虽一开始不容易想到,但get到解题技能后,该系列的题目其实解法较为单一。一、核心解题思路。Two Sum。题目:一个数组a中,找寻两个数,使... 阅读全文

posted @ 2014-06-03 15:01 匡匡锵锵 阅读(963) 评论(0) 推荐(0)

[leetcode]_Integer to Roman
摘要:题目:对应之前那道将罗马数字转换整型数字的题目。反过来。思路:刚开始做的时候,想着用程序进行判断,复杂的要死。网络了别人代码,非常清晰。代码: 1 public String intToRoman(int num) { 2 String[] alpha = {"M" ,"CM"... 阅读全文

posted @ 2014-05-29 14:23 匡匡锵锵 阅读(125) 评论(0) 推荐(0)

[leetcode]_Container With Most Water
摘要:题目:在二维坐标系下,有很多个挡板,有两个挡板之间能够积蓄的水的最大面积。如下图所示:思路:我只想到暴力解法,用O(n2)的时间复杂度算出任意两个挡板形成的面积,这必须的过不了。优化解法:O(n).用两个指针 i 和 j 指向整个height[]数组的头尾。if i 指向的高度 决定,因此不会比现在... 阅读全文

posted @ 2014-05-29 09:59 匡匡锵锵 阅读(153) 评论(0) 推荐(0)

[leetcode]_Longest Substring Without Repeating Characters
摘要:问题:求一个字符串中最长不重复子串的长度。直接思路:以每个字符为出发计算最长不重复子串。TLE。O(n2),HashMap存储字符出现的位置。代码: 1 public int lengthOfLongestSubstring(String s) { 2 Map temp = n... 阅读全文

posted @ 2014-05-28 16:14 匡匡锵锵 阅读(138) 评论(0) 推荐(0)

[leetcode]_Add Two Numbers
摘要:题目:两个链表存储数字,然后求和,和值存储在一个链表中。代码: 1 public ListNode addTwoNumbers(ListNode l1, ListNode l2) { 2 ListNode head = new ListNode(0); 3 ListN... 阅读全文

posted @ 2014-05-27 16:41 匡匡锵锵 阅读(106) 评论(0) 推荐(0)

[leetcode]_Path Sum I && II
摘要:都是考查DFS。经典回溯算法,问题在于我对该类型的代码不熟悉,目前以参考别人的代码,然后加上自己的实现为主,通过类似的题目加强理解。一、给定一棵二叉树,判断是否存在从root到leaf的路径和等于给定值sum,存在返回true,否则返回false。思路:DFS。代码: 1 private b... 阅读全文

posted @ 2014-05-27 10:26 匡匡锵锵 阅读(174) 评论(0) 推荐(0)

[leetcode]_Best Time to Buy and Sell Stock I && II
摘要:一个系列三道题,我都不会做,google之答案。过了两道,第三道看不懂,放置,稍后继续。一、Best Time to Buy and Sell Stock I题目:一个数组表示一支股票的价格变换。要求只买卖一次,获得最大收益。思路:一开始我认为是寻找最大、最小值,但由于最大值不一定总是出现在最小值的... 阅读全文

posted @ 2014-05-26 20:44 匡匡锵锵 阅读(161) 评论(0) 推荐(0)

[leetcode]_Valid Palindrome
摘要:题目:判断一个数字字符串是否是回文串。空串认为是回文串。思路:双指针问题,重点在于此题的很多陷进:例如,s = " " ,return true。 s = ".," , return true。代码:修改了很多遍,终于AC , 要点在于只有当头尾两个指针都指向数字或者字母时,此时才有比较操作,否则都... 阅读全文

posted @ 2014-05-26 16:55 匡匡锵锵 阅读(133) 评论(0) 推荐(0)

[leetcode]_Pascal's Triangle II
摘要:题目:Pascal三角的变形,要求只用O(K)的额外空间。思路:由于Pascal三角中,tri[n][i] = tri[n - 1][i] + tri[n-1][i-1],(通常情况下)如果已经获得K = 2时的数组:1211、 普通思路,从前部开始,想要生成下一行,在不能申请其它辅助空间时,131... 阅读全文

posted @ 2014-05-25 16:11 匡匡锵锵 阅读(118) 评论(0) 推荐(0)

[leetcode]_Pascal's Triangle
摘要:题目:题目本身不存在问题,生成Pascal三角。注意: ArrayList的使用: 1、ArrayList申请二维数组。1 ArrayList> result = new ArrayList>(); 2、操作:1 ArrayList one = new ArrayList();2 ... 阅读全文

posted @ 2014-05-25 15:37 匡匡锵锵 阅读(156) 评论(0) 推荐(0)

[leetcode]_Merge Sorted Array
摘要:题目:合并两个有序数组A , B,将合并后的数组存到A中。假设A的空间足够装下A和B所有的元素。思路:这道题考虑如果正向扫描两个数组,则每插入一个元素,则需移动A后的所有元素。换个角度想,既然元素个数一定,则从尾部扫描两个数组,依次放入到A的尾部,这样既不会产生大量元素的移动,也不会造成A中元素被覆... 阅读全文

posted @ 2014-05-25 11:04 匡匡锵锵 阅读(164) 评论(0) 推荐(0)

[leetcode]_Remove Duplicates from Sorted Array II
摘要:题目:一个有序数组,要求保证数组中的每个元素不能超过2个。 输入:A =[1,1,1,2,2,3] 输出:length =5, and A is now[1,1,2,2,3]思路:双指针 。有些绕,不过理清了后,思路还是很直接明朗的。1、两个指针:p和help。初始化时同时指向数组头。变量cur... 阅读全文

posted @ 2014-05-25 10:32 匡匡锵锵 阅读(130) 评论(0) 推荐(0)

[leetcode]_Climbing Stairs
摘要:我敢保证这道题是在今早蹲厕所的时候突然冒出的解法。第一次接触DP题,我好伟大啊啊啊~题目:一个N阶的梯子,一次能够走1步或者2步,问有多少种走法。解法:原始DP问题。思路:1、if N == 1 , then ans = 1;2、if N == 2 , then ans = 2;3、if 我们现在在... 阅读全文

posted @ 2014-05-23 19:58 匡匡锵锵 阅读(148) 评论(0) 推荐(0)

[leetcode]_Unique Paths
摘要:题目:有一个m * n 的方格,如下图,一个小robot希望从左上角走到右下角,共有多少种不同的路线走法。思路:我的错误思路:全排列,从(0,0)走到(m - 1,n - 1)共需要往下走m-1步,往右走n-1步。那么计算公式就是(全排列(m-1+n-1)/(全排列(m-1)*全排列(n-1)))。... 阅读全文

posted @ 2014-05-22 15:24 匡匡锵锵 阅读(150) 评论(0) 推荐(0)

导航

AmazingCounters.com