摘要:
题目:将一棵二叉树履平成一个类似Linked-list的东西。思路:该过程类似于二叉树的前序遍历,但是遍历代码,我处理不来参数的变化。没AC。-------->写的很好的解题博客参考上述博客,思路很清楚的写出代码: 1 public void flatten(TreeNode root) { 2 ... 阅读全文
2014年6月5日
摘要:
题目:二叉树的中序遍历。思路:用递归来写中序遍历非常简单。但是题目直接挑衅说,----->"Recursive solution is trivial"。好吧。谁怕谁小狗。递归代码: 1 List inOrder = new ArrayList(); 2 3 public ... 阅读全文
2014年6月3日
摘要:
问题:K Sum问题是一个问题系列,在一个数组中找K个数的和能够满足题目中要求。从2 Sum 到 3 Sum , 3 Sum Clozet ,4 Sum。。解法虽一开始不容易想到,但get到解题技能后,该系列的题目其实解法较为单一。一、核心解题思路。Two Sum。题目:一个数组a中,找寻两个数,使... 阅读全文
2014年5月29日
摘要:
题目:对应之前那道将罗马数字转换整型数字的题目。反过来。思路:刚开始做的时候,想着用程序进行判断,复杂的要死。网络了别人代码,非常清晰。代码: 1 public String intToRoman(int num) { 2 String[] alpha = {"M" ,"CM"... 阅读全文
摘要:
题目:在二维坐标系下,有很多个挡板,有两个挡板之间能够积蓄的水的最大面积。如下图所示:思路:我只想到暴力解法,用O(n2)的时间复杂度算出任意两个挡板形成的面积,这必须的过不了。优化解法:O(n).用两个指针 i 和 j 指向整个height[]数组的头尾。if i 指向的高度 决定,因此不会比现在... 阅读全文
2014年5月28日
摘要:
问题:求一个字符串中最长不重复子串的长度。直接思路:以每个字符为出发计算最长不重复子串。TLE。O(n2),HashMap存储字符出现的位置。代码: 1 public int lengthOfLongestSubstring(String s) { 2 Map temp = n... 阅读全文
2014年5月27日
摘要:
题目:两个链表存储数字,然后求和,和值存储在一个链表中。代码: 1 public ListNode addTwoNumbers(ListNode l1, ListNode l2) { 2 ListNode head = new ListNode(0); 3 ListN... 阅读全文
摘要:
题目:计算一棵二叉树所有路径组成的数的总和。思考:也是DFS的基础应用。虽然还是套着别人的DFS框架写的,但是学习通常会经历先模拟,再创新的过程。代码: 1 private int sum = 0; 2 public int sumNumbers(TreeNode root) { 3... 阅读全文
摘要:
问题来源于leetcode上的两道题 Path Sum I && II,分别写了两个dfs。1 void dfs(TreeNode node , int sum , ArrayList curPath)2 void dfs(TreeNode node , int sum , boolean ifEx... 阅读全文
摘要:
都是考查DFS。经典回溯算法,问题在于我对该类型的代码不熟悉,目前以参考别人的代码,然后加上自己的实现为主,通过类似的题目加强理解。一、给定一棵二叉树,判断是否存在从root到leaf的路径和等于给定值sum,存在返回true,否则返回false。思路:DFS。代码: 1 private b... 阅读全文