leetcode
spallation
这个作者很懒,什么都没留下…
展开
-
191 Number of 1 Bits
/* * 32位无符号数最大为2147483647 * Java中没有无符号类型,所以此题不能用n%2的方法解题 */public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) {int bits = 0;int t原创 2015-08-04 11:20:17 · 212 阅读 · 0 评论 -
110 Balanced Binary Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Sol原创 2015-08-16 14:26:10 · 257 阅读 · 0 评论 -
102 Binary Tree Level Order Traversal
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Sol原创 2015-08-16 21:23:43 · 208 阅读 · 0 评论 -
88 Merge Sorted Array
public class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int[] tmpNums = new int[m + n]; int p=0, q=0; int index = 0; while(p原创 2015-08-17 14:56:11 · 268 阅读 · 0 评论 -
67 Add Binary
public class Solution { public String addBinary(String a, String b) {if(a==null&&b==null) return null; StringBuffer str = new StringBuffer(); int a_len = a.length();原创 2015-08-17 21:49:10 · 321 阅读 · 0 评论 -
83 Remove Duplicates from Sorted List
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public Lis原创 2015-08-18 14:39:51 · 239 阅读 · 0 评论 -
70 Climbing Stairs
public class Solution { public int climbStairs(int n) {int[] f = new int[n+2];f[0] = 0; f[1] = 1; f[2] = 2;return calStep(f, n); }public int calStep(int[] f, int n){if(nif(f[n]原创 2015-08-17 15:25:55 · 260 阅读 · 0 评论 -
66 Plus One
public class Solution { public int[] plusOne(int[] digits) {if(digits==null||digits.length==0) return null; int len = digits.length; int f = 1; int p = len - 1;原创 2015-08-18 09:11:02 · 289 阅读 · 0 评论 -
189 Rotate Array
/** 思路:前段反转,后段反转,整体反转*/public void rotate(int[] nums, int k) {int len = nums.length;if(nums==null||len==0||len==1) return;k = k % len; reverse(nums,0,len-k-1); reverse(nu原创 2015-08-05 16:09:30 · 201 阅读 · 0 评论 -
101 Symmetric Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Sol原创 2015-08-17 10:47:43 · 243 阅读 · 0 评论 -
100 Same Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Sol原创 2015-08-17 10:56:06 · 303 阅读 · 0 评论 -
190 Reverse Bits
public class Solution { // you need treat n as an unsigned value public int reverseBits(int n) { int[] array = new int[32]; Arrays.fill(array, 0); int p = 0;原创 2015-08-04 14:27:04 · 292 阅读 · 0 评论 -
205 Isomorphic Strings
/* * 题中“No two characters may map to the same character but a character may map to itself.” * 说明两个字符串对应位置的映射是一对一映射,而且对应位置的字符相同时也算一个映射 */class Solution { public boolean isIsomorphic(St原创 2015-07-23 21:12:34 · 332 阅读 · 0 评论 -
111 Minimum Depth of Binary Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Sol原创 2015-08-15 20:52:16 · 212 阅读 · 0 评论 -
107 Binary Tree Level Order Traversal II
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Sol原创 2015-08-16 15:48:08 · 316 阅读 · 0 评论 -
18 4Sum
public class Solution { public List> fourSum(int[] nums, int target) { if(nums==null||nums.length<4){ return new ArrayList>(); } Arrays.sort(nums); return findKSumInOrderArray(n原创 2015-08-30 19:42:11 · 284 阅读 · 0 评论 -
22 Generate Parentheses
public class Solution { List res = new ArrayList(); Set tmp = new HashSet(); public List generateParenthesis(int n) { if(n==0) return res; String str = new String(); dfs(n, n, str);原创 2015-08-31 17:19:52 · 251 阅读 · 0 评论 -
104 Maximum Depth of Binary Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Sol原创 2015-08-16 21:19:56 · 269 阅读 · 0 评论 -
204 Count Primes
public class Solution { public int countPrimes(int n) { Boolean[] isPrime = new Boolean[n]; for(int i=2;i isPrime[i] = true; } for(int i=2;i*i if(!isPrime[i])原创 2015-07-24 10:34:07 · 264 阅读 · 0 评论 -
24 Swap Nodes in Pairs
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public ListNode swap原创 2015-09-01 15:00:27 · 238 阅读 · 0 评论 -
58 Length of Last Word
public class Solution { public int lengthOfLastWord(String s) {if(s==null) return 0; String[] res = s.split(" "); if(res==null||res.length==0) return 0; int len = res.原创 2015-08-18 15:45:26 · 206 阅读 · 0 评论 -
38 Count and Say
public class Solution { public String countAndSay(int n) {if(n List res = new ArrayList(); res.add("1"); res.add("1"); res.add("11"); res.add("21"); res.add("1211"); res.add("111221");原创 2015-08-18 16:38:09 · 258 阅读 · 0 评论 -
20 Valid Parentheses
public class Solution { public boolean isValid(String s) { if(s==null) return true; Stack stack = new Stack(); int len = s.length(); int i = 0; while(i char c =原创 2015-08-20 11:10:15 · 262 阅读 · 0 评论 -
21 Merge Two Sorted Lists
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public ListN原创 2015-08-20 10:53:18 · 228 阅读 · 0 评论 -
43 Multiply Strings
/* * 用两个String模拟乘法,来完成大数相乘 */public class Solution { public String multiply(String num1, String num2) { StringBuffer res = new StringBuffer(); if(num1==null||num1.length()==0) retur原创 2015-09-05 16:31:49 · 270 阅读 · 0 评论 -
19 Remove Nth Node From End of List
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public ListN原创 2015-08-20 14:03:27 · 235 阅读 · 0 评论 -
13 Roman to Integer
public class Solution { public int romanToInt(String s) {if(s==null||s.length()==0) return 0;Map map = new HashMap();map.put('I', 1);map.put('V', 5);map.put('X', 10);map.put('L', 50);原创 2015-08-22 20:42:06 · 319 阅读 · 0 评论 -
47 Permutations II
public class Solution { List> res = new ArrayList>(); public List> permuteUnique(int[] nums) { if(nums==null||nums.length==0){ return res; } Arrays.sort(nums);原创 2015-09-08 19:28:15 · 277 阅读 · 0 评论 -
46 Permutations
public class Solution { List> res = new ArrayList>(); public List> permute(int[] nums) { if(nums==null||nums.length==0){ return res; } Arrays.sort(nums);原创 2015-09-08 19:23:48 · 266 阅读 · 0 评论 -
242 Valid Anagram
public class Solution { public boolean isAnagram(String s, String t) { if(s==null||t==null) return false; if(s.length()!=t.length()) return false; char[] array1 = s.toCharArray()原创 2015-12-30 21:19:59 · 219 阅读 · 0 评论 -
26 Remove Duplicates from Sorted Array
public class Solution { public int removeDuplicates(int[] nums) {if(nums==null||nums.length==0) return 0; int nlen = 1; int f = nums[0]; int len = nums.length;原创 2015-08-20 10:40:29 · 221 阅读 · 0 评论 -
40 Combination Sum II
/* * 先对candidates中的元素按从小到大排序,能节省时间 */public class Solution { List> res = new ArrayList>(); public List> combinationSum2(int[] candidates, int target) { if(candidates==null||candidates.l原创 2015-09-05 14:06:45 · 255 阅读 · 0 评论 -
31 Next Permutation
/* * 思路:从右向左,长度不断增长,找到第一个逆序的数(数从大到小排序)例如1,1,5,3,2则当长度增长到4时 * 数列范围为:1,5,3,2,将5,3,2排序,然后找到第一个比1大的数,然后与1互换,则得到了结果1,2,1,3,5 */public class Solution { public void nextPermutation(int[] nums) {原创 2015-09-03 20:33:18 · 333 阅读 · 0 评论 -
34 Search for a Range
/* * 二分查找 */public class Solution { public int[] searchRange(int[] nums, int target) { int[]res = {-1,-1}; if(nums==null||nums.length==0) return res; int len = nums.length;原创 2015-09-03 21:49:46 · 246 阅读 · 0 评论 -
29 Divide Two Integers
/* * 思路:每次减轻一个除数会超时,所以要一次减去多个除数来加速 * 注意:题中说“If it is overflow, return MAX_INT.”注意当数大于MAX_INT时进行处理 * int 的范围为-2147483648~2147483647,而且Math.abs(-2147483648)的值还是-2147483648 * 而Math.abs((long)-214原创 2015-09-02 21:33:00 · 273 阅读 · 0 评论 -
36 Valid Sudoku
/* * 需要判断 * (1)每一行 * (2)每一列 * (3)九个子正方形 * 是否都满足没有重复的数字 * 测试矩阵: * char[][] board = {{'5','3','.','.','7','.','.','.','.'},{'6','.','.','1','9','5','.','.','.'},{'.','9','8','.','.',原创 2015-08-19 15:31:47 · 238 阅读 · 0 评论 -
28 Implement strStr()
public class Solution { public int strStr(String haystack, String needle) { if(haystack==null||needle==null) return -1; return haystack.indexOf(needle); }}原创 2015-08-19 15:42:13 · 215 阅读 · 0 评论 -
27 Remove Element
public class Solution { public int removeElement(int[] nums, int val) { if(nums==null) return 0;int len = nums.length;int c = 0;List list = new ArrayList();for(int i=0;iif(nums[i原创 2015-08-19 15:50:07 · 218 阅读 · 0 评论 -
35 Search Insert Position
public class Solution { public int searchInsert(int[] nums, int target) { if(target<nums[0]) return 0; int len = nums.length; if(target>nums[len-1]) return len; int x =原创 2015-09-04 11:19:31 · 263 阅读 · 0 评论 -
39 Combination Sum
public class Solution { List> res = new ArrayList>(); public List> combinationSum(int[] candidates, int target) { if(candidates==null||candidates.length==0) return res; Arrays.so原创 2015-09-04 15:45:24 · 213 阅读 · 0 评论