自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (3)
  • 收藏
  • 关注

原创 let 116. Populating Next Right Pointers in Each Node

主题思想: 这个还是层级遍历的变形。 层级遍历,需要一个队列数据结构作为辅助,然后记录每个层有多少个节点,来区分属于哪一个层。 只需要对每一层做相同的操作: 把相同层的节点连起来就可以了。 所以代码和层级遍历,相差无几, AC 代码:/** * Definition for binary tree with next pointer. * public class TreeLi

2018-01-30 20:07:25 102

原创 let 116. Populating Next Right Pointers in Each Node

主题思想: 这个还是层级遍历的变形。 层级遍历,需要一个队列数据结构作为辅助,然后记录每个层有多少个节点,来区分属于哪一个层。 只需要对每一层做相同的操作: 把相同层的节点连起来就可以了。 所以代码和层级遍历,相差无几, AC 代码:/** * Definition for binary tree with next pointer. * public class TreeLi

2018-01-30 20:06:06 118

原创 let 116. Populating Next Right Pointers in Each Node

主题思想: 这个还是层级遍历的变形。 层级遍历,需要一个队列数据结构作为辅助,然后记录每个层有多少个节点,来区分属于哪一个层。 只需要对每一层做相同的操作: 把相同层的节点连起来就可以了。 所以代码和层级遍历,相差无几, AC 代码:/** * Definition for binary tree with next pointer. * public class TreeLi

2018-01-30 20:05:01 113

原创 let 115. Distinct Subsequences

主题思想: 这是一道dp题,这里总结下dp的通用套路, dp各种各样,总得需要总结点套路,再在套路基础上变通吧,先学套路。一般dp问题,特别是这种两个字符串的关系, 一般思路是先创建一个表 dp[][] 一般长度多创建一个,为的是存储,空字符串,或者初始化一部分值,或者说dp一般下标是从1开始的。 因为dp一般是dp[i][j]=dp[i-1][j-1] …. 即dp[i][j] 是

2018-01-30 19:46:41 118

原创 let 114. Flatten Binary Tree to Linked List

主题思想: 这种方法有两种方法: 1. 按照提示,按前序顺序记录节点,然后重建树。AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNo

2018-01-30 16:25:39 140

原创 let 113. Path Sum II

主题思想: 递归回溯, 关键点在于什么时候选择回溯,什么时候应该结束。当遇到null 时结束,则应该在遍历完一个节点的左右子树过后,再删除栈顶元素。AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; *

2018-01-29 22:56:25 123

原创 let 112. Path Sum

主题思想: 判断是否存在一条根节点到叶子节点的路径,路径上的和等于指定数值。AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int

2018-01-29 22:23:10 119

原创 let 111. Minimum Depth of Binary Tree

主题思想: 递归, 找根节点到叶子节点的最小路径长度。AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val =

2018-01-29 22:07:47 122

原创 let 110. Balanced Binary Tree

主题思想: 递归求解,判断是不是平衡而叉树。AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; }

2018-01-29 21:49:01 113

原创 let 108. Convert Sorted Array to Binary Search Tree

主题思想: 升序有序数组,转成平衡二叉树。利用递归,选取数组中间节点作为根节点。循环构造左右子树。AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * T

2018-01-28 22:41:06 99

原创 let 107. Binary Tree Level Order Traversal II

主题思想: 主要思路还是利用队列进行层次遍历,但是插入时,利用LinkedList 可以指定插入位置的特性,每次都把下一层插到最前面,这样就是一个倒序了。 其他麻烦点方法是: 按照层次全部压入栈中,并记录下对应层次的个数,这样,最后出栈,组装,输出。但是还是第一种利用LinkedList 特性最为方便。AC 代码:/** * Definition for a binary tree

2018-01-28 22:31:33 107

原创 let 106. Construct Binary Tree from Inorder and Postorder Traversal

主题思想: 这题和105 姊妹题,主要思想就是递归,然后利用中序遍历的特点,后序遍历的特点,把原数组,利用起始下标的不同,分割成左右子树,两段,然后递归构造左子树,和右子树。具体AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode

2018-01-28 22:10:32 139

原创 105. Construct Binary Tree from Preorder and Inorder Traversal

主题思想: 经典题,二叉树的构建,利用前序和中序序列进行二叉树的构建。首先采用递归的思想: 从前序序列找根节点,然后去中序序列里面找到根节点的下标,中序序列中在根节点之前的元素构成根节点的左子树节点,之后的构成右子树节点,递归下去。中序序列以根节点为分界分成左右两个部分,这个容易理解,那在前序序列中,又如何分割为左右子树两个部分呢?这个就需要计算在中序中,根节点左边有多少个节点

2018-01-27 17:57:19 117

原创 104. Maximum Depth of Binary Tree

主题思想: 递归计算树的层高。AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } *

2018-01-27 15:50:44 125

原创 let 103. Binary Tree Zigzag Level Order Traversal

主题思想: 我是用栈解决的,还有一种方法是利用递归。 利用栈的AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val

2018-01-27 12:59:27 220

原创 let 102 Binary Tree Level Order

主题思想: 按层打印二叉树, 需要使用队列结构, 难点在于如何表示每层,这里有个技巧,就是每次先记录队列中的容量, 来表示一层的数目,在执行完一层后,应该把上一层的全部从队列中取出,并把下一层的放进队列中。 具体AC 代码:/** * Definition for a binary tree node. * public class TreeNode { * int v

2018-01-27 12:02:02 132

原创 hadoop 学习系列总结(三) hadoop 简易配置,及启动 起步

主题思想: 总结下hadoop 相关的简易设置hadoop 相关的配置文件,主要core-default.xmlcore-site.xmlhdfs-default.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xml其中default.xml 无法看到,,根据源码, 会先加载 core-default.xml 然后是c

2018-01-26 17:13:19 236

原创 let 98

主题思想: 二叉树的中序遍历:迭代方式,实现中序遍历,借助栈结构。 中序遍历的二叉树一定是一个,递增序列。模板代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right;

2018-01-22 22:35:22 481

原创 let 97 Interleaving String

Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.For example,Given:s1 = "aabcc",s2 = "dbbca",When s3 = "aadbbcbcac", return true.When s3 = "aadbbbaccc", return fals

2018-01-22 21:52:23 389

原创 let 96 Unique Binary Search

主题思想: 这个题也是一个典型,符合动态规划的解法。解法思路是: 先推出前几个数字,然后找其中规律,递推。 再然后,分析,验证。 比如这题,根据根节点的取值不同具体分析, 比如 n=1-4时 dp[1]-dp[4]: 1,2,5,14AC 代码:class Solution { public int numTrees(int n) { int[] d

2018-01-22 20:11:38 105

原创 let 92. Reverse Linked List II

主题思想: 链表翻转:链表翻转, 链表翻转经典代码:public ListNode reverseList(ListNode head){ if(head==null||head.next==null) return head; ListNode prev=null,next=null; while(head.next!=null){ next

2018-01-21 21:35:54 125

原创 let 91 DecodeWays

主题思想: 以后不再手写字符串转 int 了 ,可以用Integer.valueOf(String)动态规划:class Solution { public int numDecodings(String s) { if(s==null||s.length()==0) return 0; int n=s.length(); in

2018-01-21 17:29:41 155

原创 let 90 Subsets II

* 主题思想:* 这题解法是回溯法,典型的搜索题。 和permutation 以及subset是同样类型的题。 这题主要复杂在有相同数字,需要跳过这里记录下一种通用的解法:首先排序,回溯法,搜索搜索中根据题目要求,跳过相同数字AC 代码:class Solution { public ListList> subsetsWithDup(int[] nums) {

2018-01-21 16:28:16 108

原创 let 87 Scramble String

主题思想: 这题主要是暴力,求解,用到递归,一个字符串是不是scramble ,可以归结为子串是不是,然后在分解,分而治之,最后求出。AC 代码:class Solution { public boolean isScramble(String s1, String s2) { if(s1.equals(s2)) return true; int

2018-01-21 15:05:45 178

原创 let 85 Maximal Rectangle

主题思想: 这题是84的升级版,之所以记录这道题是因为,解决这道题的思想,值得学习。可以作为解决类似问题的通用思想。这是二维的,84是一维的, 那么把二维化成1维就实现了降维,这种思想和求最大子序列和,以及求矩阵中最大子序列和是一样的。或者说这道题本身,就和求最大子序列和是类似的题。解法类似。这种思想值得注意,就是解二维题是,通过把数据累加的方式,转化成1维问题, 第一行加上第二行

2018-01-20 21:09:28 259

原创 let 84 Maxmuim Rectange in Historgram

主题思想: 这是一道求最值问题,一般这种问题,是动态规划问题,一种最容易想到的方法是,用一根线扫描,这样有多少个高度就需要多少根线,没扫描一次,O(n) 总的就是 n^2这里利用栈的思想: 如果一个条状,他后面的条高度比他高,那么这个条状肯定不是最大面积的终止条,因为扩展到后面的条面积就增加了,所以,只有出现下降条时,才可能出现最大值。 所以用栈维护一个单调非递减数值,记录下标,遇见当前

2018-01-20 20:52:30 211

原创 let 79 Word search

Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically n

2018-01-17 21:57:05 230

原创 let 78 Subsets

Given a set of distinct integers, nums, return all possible subsets (the power set).Note: The solution set must not contain duplicate subsets.For example,If nums = [1,2,3], a solution is:[ [3

2018-01-17 21:08:06 108

原创 let 77 Combinations

主题思想: : 有序数组,组合, 1…. n 可以抽象为一个有序数组, 题目大意就是从n个元素挑出k个的所有组合。AC 代码: 代码中需要注意的一点就是,java是依靠引用的,在ans.add()时,必须新建list 对象,否则在执行完 dfs 会执行,tmp.remove() 这时,会清楚已经加入到ans的list ,导致ans 结果变成[[],[],[],[],...] 就是因为fo

2018-01-17 18:02:35 154

原创 let 76. Minimum Window Substring

Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).For example,S = "ADOBECODEBANC"T = "ABC"Minimum window is "BANC".Not

2018-01-17 16:21:44 130

原创 let 75 Sort Colors

Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.Here, we will use the integers 0,

2018-01-16 22:27:38 143

原创 let 72 Edit Distance

Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)You have the following 3 operations permitted on a word:

2018-01-15 22:33:31 122

原创 let 71 Simplify Path

Given an absolute path for a file (Unix-style), simplify it.For example,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c"click to show corner cases.Corner Cases:Did you consider the

2018-01-15 21:21:21 106

原创 let 56 Merge Interval

主题思想: 首先,这类题,一般都需要排序,否则时间复杂度太高,而且实现起来很复杂,如果能够排序,则问题得以化简, 需要合并的肯定是具有重合,按起始点排序后,利用栈的概念,保证了要处理的元素和栈顶元素只有两种关系,能合并,和不能合并 如果能合并,就合并,不能合并新加到列表里,接下来的interval 肯定不会和以前的,接下来接着和栈顶进行比较。技术点是: 实现Comparator

2018-01-13 21:51:31 225

原创 let 55 Jump Game

主题思想: 这个和Jump GameII 是类似的题做题思路就是贪心算法, 首先获取最大可以走到的下标,然后依次走一步,记录在走到上一次计算到的最大下标位置时出现的最大值,当走到上一次计算的最大下标时,更新下一步可以到达的最大下标,如果下一步可以到达的下标大于数组最后一个元素下标,则可以到达。如果等于当前下标,说明止步不前,则无法到达数组最后一个元素。AC代码:class Sol

2018-01-12 21:33:45 111

原创 let 52 N-Queens II

主题思想: 回溯,搜索题。 这次考察回溯如何返回值。AC 代码:class Solution { public int totalNQueens(int n) { return dfs(0,n,new ArrayList ()); } public int dfs(int step,int n,List record){ if

2018-01-12 20:57:39 125

原创 let 51 N-Queens

主题思想: 这是一道搜索题, 典型的回溯算法思路。 当搜索时,通常满足条件,需要改变某种状态。一种情况处理完后,应该把改变的状态再改回来,这就是回溯的核心。 典型的深度搜索。 具体到这道题, 可以对存储空间优化,因为搜索时可以一行一行搜索,即先寻找第一行合适的位置,再寻找第二行,这样可以用一个List 记录每一行的位置,list中添加的下标就是行号,存储的值是对应的列值。具体代码:cl

2018-01-12 20:56:18 113

原创 let 50 Pow(x,n)

主题思想: n 的取值范围 n0快速幂算法public double quickPow(double x,int n){ if(n==0) return 1.0000; double ans=1.0; while(n!=0){ if(n%2!=0){ ans=ans*x;

2018-01-10 22:31:31 121

原创 let 49 Group Anagrams

Given an array of strings, group anagrams together.For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"], Return:[ ["ate", "eat","tea"], ["nat","tan"], ["bat"]]主题思想: 这个刚开始第一眼思

2018-01-10 22:00:06 127

原创 let 46 Permutations

Given a collection of distinct numbers, return all possible permutations.For example,[1,2,3] have the following permutations:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]主

2018-01-10 16:15:11 133

学习vim 编辑器 第7版

学习vim 编辑器,最新版,vim学习必看。包含了vim的各种使用技巧。

2017-11-14

深入浅出iphone开发中文版

head first iphone programming 中文版

2016-09-26

网络水晶头接法

网络水晶头的接法,再也不用发愁水晶头不会接了

2014-07-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除