自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

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

public TreeNode buildTree(int[] preorder, int[] inorder) { return construct(0, preorder.length - 1, preorder, 0, inorder.length - 1, inorder); } public TreeNode construct(int preStart, int preEnd...

2018-03-22 23:45:02 158

原创 LeetCode 547. Friend Circles

public int findCircleNum(int[][] m) { int res = 0; int[] mark = new int[m.length]; for(int i = 0; i < m.length; i++) { if(mark[i] == 0) { DFS(i, m, mark); res++; } } r...

2018-03-20 12:37:02 158

原创 LeetCode 207. Course Schedule

public boolean canFinish(int numCourses, int[][] nums) { ArrayList<GraphNode> graph = new ArrayList<>(); int[] visit = new int[numCourses]; for(int i = 0; i < numCourses; i++) ...

2018-03-19 21:20:39 131

原创 LeetCode 633. Sum of Square Numbers

public boolean judgeSquareSum(int c) { int left = 0, right = (int) Math.sqrt(c); while(left <= right) { int sum = left * left + right * right; if(sum < c) { left++; } els...

2018-03-15 16:00:33 117

原创 LeetCode 450. Delete Node in a BST

public TreeNode deleteNode2(TreeNode root, int key) { if(root == null) { return null; } if(key > root.val) { //大于,进入右子树 root.right = deleteNode2(root.right, key); } else if(...

2018-03-14 20:59:23 104

原创 LeetCode 463. Island Perimeter

public class IslandPerimeter { int res = 0; public int islandPerimeter(int[][] grid) { if(grid.length == 0 || grid[0].length == 0) return 0; int[][] mark = new int[grid.length][grid[0].len...

2018-03-14 08:41:48 93

原创 LeetCode 3. Longest Substring Without Repeating Characters

public String longestPalindrome(String s) { char[] ch = new char[s.length() * 2 + 1]; //构造S for(int i = 0; i < ch.length - 1; i += 2) { ch[i] = '#'; ch[i + 1] = s.charAt((i + 1) / 2)...

2018-03-11 21:27:34 104

原创 LeetCode 476. Number Complement

public int findComplement(int num) { int i = 0; while(i < num) { i = i << 1 | 1; } return i - num; }00001111(num) + 11110000(res) = 11111111(i)利用这个原理便可以求得res,即i < num时,不停...

2018-03-11 16:26:12 90

原创 LeetCode 129. Sum Root to Leaf Numbers

public int sumNumbers(TreeNode root) { return DFS(root, 0); } public int DFS(TreeNode node, int sum) { if(node == null) return 0; int currSum = sum * 10 + node.val; //当前这个节点时的sum if(...

2018-03-09 22:06:12 154

原创 LeetCode 26. Remove Duplicates from Sorted Array

public int removeDuplicates(int[] nums) { if(nums.length < 2) return nums.length; int slow = 0; for(int fast = 1, len = nums.length; fast < len; fast++) { if(nums[slow] < nums[fas...

2018-03-09 18:15:22 85

原创 LeetCode 189. Rotate Array

public void rotate2(int[] nums, int k) { k = k % nums.length; //处理k超过len的情况 reverse(nums, 0, nums.length - k); reverse(nums, nums.length - k, nums.length); reverse(nums, 0, nums.length);...

2018-03-08 15:29:49 100

原创 LeetCode 560. Subarray Sum Equals K

public int subarraySum(int[] nums, int k) { HashMap<Integer, Integer> sumMap = new HashMap<>(); //<每个下标的sum, sum出现次数> int sum = 0, res = 0; sumMap.put(0, 1); //sum刚好等...

2018-03-07 19:07:09 114

原创 LeetCode 451. Sort Characters By Frequency

public String frequencySort(String s) { char[] map = new char[123]; char[] ch = s.toCharArray(); for(int i = 0; i < ch.length; i++) { map[ch[i]]++; } StringBuffer sb = new String...

2018-03-06 17:13:06 88

原创 LeetCode 347. Top K Frequent Elements

public List<Integer> topKFrequent(int[] nums, int k) { HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); List<Integer> res = new ArrayList<Integer>();...

2018-03-06 15:36:40 113

原创 LeetCode 101. Symmetric Tree

public boolean isSymmetric(TreeNode root) { return DFS(root, root); } public boolean DFS(TreeNode t1, TreeNode t2) { if(t1 == null && t2 == null) return true; if(t1 == null || t2 == ...

2018-03-04 22:05:40 93

原创 LeetCode 415. Add Strings

public String addStrings(String num1, String num2) { if(num2.length() > num1.length()) { String temp = new String(num1); num1 = num2; num2 = temp; } char[] ch1 = num1.toCharArray(...

2018-03-04 21:59:49 102

原创 LeetCode 回溯法合集

78. Subsetspublic List<List<Integer>> subsets(int[] nums) { //把空集加进去 List<List<Integer>> result = new ArrayList<List<Integer>>(); result.add(new ArrayList<...

2018-02-27 17:24:40 345

原创 LeetCode 153. Find Minimum in Rotated Sorted Array

public int findMin(int[] nums) { if(nums.length == 0) return -1; if(nums[0] <= nums[nums.length - 1]) return nums[0]; int begin = 0; int end = nums.length - 1; int mid = 0; while(...

2018-02-24 16:37:39 90

原创 LeetCode 74. Search a 2D Matrix

public boolean searchMatrix(int[][] matrix, int target) { if(matrix.length == 0 || matrix[0].length == 0) return false; int row = 0; int col = matrix[0].length - 1; while(row < matrix...

2018-02-24 14:50:15 91

原创 LeetCode 33. Search in Rotated Sorted Array

public int search(int[] nums, int target) { if(nums.length == 0) return -1; int begin = 0; int end = nums.length - 1; int mid = 0; while(begin <= end) { mid = begin + (end - begin) ...

2018-02-24 13:51:29 78

原创 LeetCode 374. Guess Number Higher or Lower

public int guessNumber(int n) { int begin = 1; int end = n; while(begin <= end) { int mid = begin + (end - begin) / 2; if(guess(mid) == 0) { return mid; } else if(guess(mi...

2018-02-24 10:33:49 181

原创 LeetCode 167. Two Sum II - Input array is sorted

public int[] twoSum(int[] numbers, int target) { int[] result = new int[2]; int begin = 0; int end = numbers.length - 1; while(begin <= end) { int sum = numbers[begin] + numbers[end];...

2018-02-23 22:30:43 77

原创 LeetCode 236. Lowest Common Ancestor of a Binary Tree

public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root == null || root == p || root == q) return root; TreeNode left = lowestCommonAncestor(root.left, p, q); TreeN...

2018-02-23 17:43:00 71

原创 LeetCode 637. Average of Levels in Binary Tree

public List<Double> averageOfLevels(TreeNode root) { List<Double> result = new ArrayList<Double>(); Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(...

2018-02-22 16:22:22 96

原创 LeetCode 257. Binary Tree Paths

public List<String> binaryTreePaths(TreeNode root) { List<String> result = new ArrayList<String>(); order(root, result, new StringBuffer()); return result; } public void or...

2018-02-21 22:40:57 80

原创 LeetCode 107. Binary Tree Level Order Traversal II

public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> result = new ArrayList<List<Integer>>(); if (root == null) return result; ...

2018-02-18 14:03:44 81

原创 LeetCode 104. Maximum Depth of Binary Tree

public int maxDepth(TreeNode root) { return order(root, 0); } public int order(TreeNode node, int depth) { if(node == null) { return depth; } depth++; int d1 = order(node.left, dep...

2018-02-18 11:10:42 125

原创 LeetCode 438.Find All Anagrams in a String

public List<Integer> findAnagrams(String s, String p) { List<Integer> result = new ArrayList<Integer>(); //构造P的map int[] mapP = new int[26]; for(int i = 0, len = p.length(); ...

2018-02-17 11:09:41 193

原创 LeetCode 387. First Unique Character in a String

public int firstUniqChar(String s) { int[] arr = new int[26]; int len = s.length(); for(int i = 0; i < len; i++) { arr[s.charAt(i) - 'a']++; } for(int i = 0; i < len; i++) { ...

2018-02-16 20:44:37 89

原创 LeetCode 205. Isomorphic Strings

同构字符串public boolean isIsomorphic1(String s, String t) { if(s.length() != t.length()) return false; char[] chS = s.toCharArray(); char[] chT = t.toCharArray(); int[] mapS = new int[128]; i...

2018-02-16 15:08:25 104

转载 位运算——LeetCode 136.Single Number

给定一个整数数组, 每个元素出现‎‎两次‎‎, 除了某一个元素。找到那个出现一次的元素。public int singleNumber(int[] nums) { int ans = 0; for (int i : nums) { ans ^= i; } return ans; }这里先讲位运算的特点:1.0 ^ N = N2.N ^ N = 0所以每个出现两次...

2018-02-14 21:09:07 90

空空如也

空空如也

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

TA关注的人

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