LeetCode
文章平均质量分 67
HIT_微笑前进
我或许不是最好的但我愿尽自己最大的努力活出自己的精彩深思慎取尽志无悔
展开
-
【LeetCode】Path Sum II
题目:Path Sum II/**LeetCode Path Sum II * 给定一棵二叉树,和一个目标值,找到值相加等于目标值的所有路径的集合 * 遍历所有路径,找到值符合的 * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * Tree原创 2015-03-17 22:31:38 · 758 阅读 · 0 评论 -
【LeetCode】Construct Binary Tree from Preorder and Inorder Traversal 根据先序序列和中序序列恢复二叉树
题目:Construct Binary Tree from Preorder and Inorder Traversal/**LeetCode * 题意:给定一个二叉树的先序遍历和中序遍历的序列,重建二叉树 * 思路:先序遍历的第一个节点是父节点,中序遍历从第一个节点到父节点的都是父节点的左子树,父节点后面的都是父节点的右子树 * Definition for binary tre原创 2015-03-28 23:51:18 · 900 阅读 · 0 评论 -
【LeetCode】Convert Sorted List to Binary Search Tree
题目:Convert Sorted List to Binary Search Tree/**LeetCode convert link-list to Binary Search Tree *题意:给定一个按照升序排列的链表,要求将其转化为一个高度平衡的二查搜索树 *思路:因为链表是升序排列的,所以转化为二叉搜索树是简单的,但是要求是平衡的,即左右子数的高度 差在1之内 *原创 2015-03-28 23:55:26 · 717 阅读 · 0 评论 -
【LeetCode】 Same Tree
题目:Same Tree/** * LeetCode Same Tree * 题目:判断两棵树是否是完全相同的 * 思路:完全相同:1、结构相同; * 2、值相同。 * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; *原创 2015-03-17 19:23:04 · 1047 阅读 · 0 评论 -
【LeetCode】 Sum Root to Leaf Numbers
第一次写的解法,。对于只有一个儿子的节点重复了两次 。。结果就弄复杂了。。我也觉得不应该能有这么多的重复嘛/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x)原创 2015-03-17 20:30:45 · 819 阅读 · 0 评论 -
【LeetCode】Word Break II 动态规划
题目:Word Break要求找到所有能够有字典中的词重组成目标串的结果 public class Solution { public static List wordBreak(String s, Set dict) { List dp[] = new ArrayList[s.length()+1]; dp[0] = new ArrayLi原创 2015-03-28 23:28:04 · 1419 阅读 · 0 评论 -
【LeetCode】Word Break 动态规划
题目:Word Break思路:将一个串可以划分的共有s.length+1个点,判断长为n的串是否能由字典中的词组成,则看之前有没有划分点能使其处于字典中 ,这样该问题 就分解为子问题的求解所以可以使用动态规划public class Solution { public boolean wordBreak(String s, Set dict) { boolea原创 2015-03-28 23:37:35 · 1487 阅读 · 0 评论 -
【LeetCode】Word Ladder 字符串
题目:Word Ladder/**LeetCode word ladder * 题目:给定一个起始单词和一个终结单词以及一个字典,要求每次变换一个字符,成为字典中新的词,直到变为最后的词,要求其最短路径 * 思路:利用队列,先弹出第一个词,分别将词中每一个字符替换直到找到一个字典中存在的词,加入队列,直到匹配的词是最后一个,此时终止 * 如果没有这样的路径,则返回0 */packag原创 2015-03-28 23:43:20 · 1015 阅读 · 0 评论 -
【LeetCode】Wildcard Matching 串匹配 动态规划
题目:Wildcard Matching/*LeetCode WildCard matching * 题目:给定一个目标串和一个匹配串,判定是否能够匹配 * 匹配串中的定义:字符————>字符,*————>0个、1个或者多个字符,?——————>对应任意一个字符 * 思路:动态规划:*:dp[i][j] = dp[i][j-1] || dp[i-1][j] * ? || s[i原创 2015-03-28 23:24:12 · 2444 阅读 · 0 评论 -
【LeetCode】 Surrounded Regions (BFS && DFS)
题目:Surrounded Regions广搜和深搜都能解决,但是LeetCode上使用深搜时会栈溢出DFS:/*LeetCode Surrounded Regions * 题目:给定一个字符数组,由'X'和'O'组成,找到所有被x包围的o并将其替换为x * 思路:只要替换被包围的o就行,如果有一个o是边界或者上下左右中有一个是o且这个o不会被替换,则该点也不会被替换 * 从四条原创 2015-03-28 23:20:16 · 1143 阅读 · 0 评论 -
【LeetCode】 Recover Binary Search Tree BST 中序遍历
题目:Recover Binary Search Tree/* * LeetCode: recover the binary search tree * 题目:二叉树中有两个节点被交换了位置,找出它们,并且将它们换回来,要求用o(n)的连续空间 * 知识点:1、BST树的特点:中序遍历后的节点的排列是按照非降的顺序 * 思路:按照特点中序遍历,当遇到逆序的节点则按照保存相关节点,注原创 2015-03-17 18:55:15 · 1087 阅读 · 0 评论 -
【LeetCode】 Populating Next Right Pointers in Each Node 完全二叉树
题目:Populating Next Right Pointers in Each Node/* * LeetCode Populating Next Right Pointers in Each Node * 题目:为树的每个节点增加一个next指针,指向树状结构排列时自己的右边节点,如果右边没有节点则置为null * * Definition for binary tree wit原创 2015-03-17 21:18:04 · 1086 阅读 · 0 评论 -
【LeetCode】Sort Colors 数组排序
题目:Sort color/*LeetCode sort colors题目:输入一个数组,包含0,1,2分别代表红白蓝三种颜色,要求按照0,1,2的顺序,将同类颜色的连续排列思路:计数排序,是一个遍历两遍的方法:可以先统计每种的数量,之后直接将这一范围内的所有值都赋值为相应的数字即可遍历一遍的话可以在遍历的同时分别与0和2比较,从头和尾一起交换,1的在中间不用做处理;**/原创 2015-03-20 13:17:03 · 1028 阅读 · 0 评论 -
【LeetCode】median of two sorted arrays
题目:median of two sorted arrays知识点:二分查找,中位数定义public class Solution { /* * 关于:leetcode 第二题 给定两个排好序的数组,找到它们的中位数,要求:时间复杂度o(log(m+n)); * 变形:找第k个数 * 方法:1.遍历,时间复杂度为o(m+n),从头开始分别遍历两数组的数,按照大小计数原创 2015-03-16 00:12:21 · 849 阅读 · 0 评论 -
【LeetCode】Symmetric Tree 判断一棵树是否是镜像的
题目:Symmetric Tree /**LeetCode Symmetric Tree 对称的树 * 思路:判断一棵树是否对称,1.有左子树就要有右子树 * 2.除根节点外对称节点值要相同 * 注意:对称后就是左子树的左节点和右子树的右节点比较 * Definition for binary tree * public class TreeNode { *原创 2015-03-17 19:44:33 · 1410 阅读 · 0 评论 -
【LeetCode】two num 利用comparable接口 对对象进行排序
题目two num题意:给定一个整数数组和一个目标值,要求在数组中找到两个数,使得它们的和相加等于目标值,并且返回两个数的下标思路:1.如果使用暴力,时间复杂度为O(n^2)2.可以先将所有数进行排序,从最大值和最小值开始匹配再根据和目标值的比较移动,知道找到结果,时间复杂度为O(nlog(n))知识点:comparable 接口的使用,利用其进行对象的自然排序,相关文章pub原创 2015-03-16 00:05:12 · 1877 阅读 · 0 评论 -
【LeetCode】Merge Intervals 题解 利用Comparator进行排序
题目链接Merge Intervals/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Interval(int s, int e) { sta原创 2015-03-15 23:54:26 · 1689 阅读 · 0 评论 -
【LeetCode】Recover BinarySearch Tree
原题链接: http://oj.leetcode.com/problems/recover-binary-search-tree/ 这道题是要求恢复一颗有两个元素调换错了的二叉查找树。一开始拿到可能会觉得比较复杂,其实观察出规律了就比较简单。主要还是利用二叉查找树的主要性质,就是中序遍历是有序的性质。那么如果其中有元素被调换了,意味着中序遍历中必然出现违背有序的情况。那么会出现几次呢?有两种情转载 2015-03-19 20:15:01 · 830 阅读 · 0 评论 -
【LeetCode】 sort list 单链表的归并排序
题目:Sort a linked list in O(n log n) time using constant space complexity.思路:要求时间复杂度O(nlogn)知识点:归并排序,链表找到中点的方法存在的缺点:边界条件多考虑!!!/** * LeetCode Sort List Sort a linked list in O(n log n) time us原创 2015-03-16 21:44:19 · 1100 阅读 · 0 评论 -
【LeetCode】Validate Binary Search Tree 二叉查找树的判断
题目: Given a binary tree, determine if it is a valid binary search tree (BST).知识点:BST的特点:1、一个节点的左子树的所有点都小于或等于这个点的值,右子树的所有节点的值大于该节点的值;2、最左节点值最小,最右节点值最大;3、中序遍历结果值是一个非降的数列问题:如果用Integer.MAX_VAL原创 2015-03-16 21:54:25 · 864 阅读 · 0 评论 -
【LeetCode】 Rotate List 循环链表
题目:rotate list解法1:/**LeetCode Rotate List:Given a list, rotate the list to the right by k places, where k is non-negative. * 题目:循环移动链表,等价于将链表从右边数的k个节点移动到表的前方 * 思路:移动倒是简单,重点是要找到链表倒数的k个数,就等价于找到倒数第原创 2015-03-20 13:13:07 · 1240 阅读 · 0 评论 -
【LeetCode】Swap Nodes in Pairs 链表指针的应用
题目:swap nodes in pairs/** * LeetCode Swap Nodes in Pairs * 题目:输入一个链表,要求将链表每相邻的两个节点交换位置后输出 * 思路:遍历一遍即可,时间复杂度O(n) * Definition for singly-linked list. * public class ListNode { * int val;原创 2015-03-20 13:18:54 · 991 阅读 · 0 评论 -
【LeetCode】Flatten Binary Tree to Linked List
题目:Flatten Binary Tree to Linked List/**LeetCode Flatten Binary Tree to Linked List * 题意:给定一个二叉树,将其转变为一个相当于单链表的结构,观察可知该结构即:每一个节点左儿子为空,右儿子指向自己先序遍历时的下一个节点 * 思路:有观察可得,应对其进行先序遍历,得到正确的序列连接起来 * Defin原创 2015-03-28 23:57:18 · 1006 阅读 · 0 评论