2014年3月17日

LeetCode: Validate Binary Search Tree

摘要: Given a binary tree, determine if it is a valid binary search tree (BST).我想到了用中序遍历,保存到一个数组中,再检查数组是否是有序的。但是我需要O(n)的额外空间保存这个数组。网上看到一种和这个一样的方法,但是不需要额外空间,但是没太看懂。 1 public static boolean isValidBST(TreeNode root) { 2 ArrayList list = new ArrayList(); 3 traverse(root, list); 4 5 ... 阅读全文

posted @ 2014-03-17 06:19 longhorn 阅读(175) 评论(0) 推荐(0) 编辑

LeetCode: First Missing Positive

摘要: Given an unsorted integer array, find the first missing positive integer.本想用求和的方法解决,但是因为有重复的数,所以这么解决不了。看了网上的解法,是排序。当时我以为排序肯定是O(nlogn)啊,所以没想到怎么解决。但是这里忽略了一个条件,我们需要排序的数据是从1开始的连续的数。所以可以这样排序。把每个元素放到对应的位置上。1就放到A[0], 2就放到A[1]....只要这样排好序,再找到第一个位置与数不对应的就是missing positive。这里要注意,对什么样的数据进行交换排序是有条件的。1. 它应该是一个正数 阅读全文

posted @ 2014-03-17 04:54 longhorn 阅读(178) 评论(0) 推荐(0) 编辑

LeetCode: Merge Intervals

摘要: comparator的写法。Collections.sort与Arrays.sort的区别。Arrays.sort只应用于arrays。LinkedList,ArrayList要用collections.sort。都可以使用comparator。 1 public class Solution { 2 public static ArrayList merge(ArrayList intervals) { 3 ArrayList result = new ArrayList(); 4 if (intervals.size() == 0) return r... 阅读全文

posted @ 2014-03-17 02:39 longhorn 阅读(139) 评论(0) 推荐(0) 编辑

LeetCode: Multiply Strings

摘要: 1 public class Solution { 2 public String multiply(String num1, String num2) { 3 if (num1.equals("0") || num2.equals("0")) return "0"; 4 num1 = new StringBuilder(num1).reverse().toString(); 5 num2 = new StringBuilder(num2).reverse().toString(); 6 int[] result = n... 阅读全文

posted @ 2014-03-17 02:19 longhorn 阅读(100) 评论(0) 推荐(0) 编辑

导航