Array
文章平均质量分 62
再见小小ronnie
这个作者很懒,什么都没留下…
展开
-
Leetcode 283. Move Zeroes
naive o(n^2) approach like bubble sortpublic class Solution { public void moveZeroes(int[] nums) { int j, len = nums.length; for (int i=0; i<len; i++) if (n原创 2016-12-21 13:37:27 · 152 阅读 · 0 评论 -
Leetcode 219. Contains Duplicate II
public class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) { boolean isContain = false; HashMap map = new HashMap(); for (int i=0; i<nums.le原创 2016-12-20 13:22:06 · 127 阅读 · 0 评论 -
Leetcode 189. Rotate Array
public class Solution { public void rotate(int[] nums, int k) { int len = nums.length; // in case k is larger than len int t = k % len; if (t == 0原创 2016-12-20 12:56:20 · 140 阅读 · 0 评论 -
Leetcode 118. Pascal's Triangle
/** * if # of rows is less than 3 then return the corresponding arraylist * else * first add(1) to the beginning of the list * then rest can be drived by the sum of the previous line elements原创 2016-12-20 05:28:38 · 120 阅读 · 0 评论 -
Leetcode 119. Pascal's Triangle II
/** * 1 * 1 1 * 1 2 1 * 1 3 3 1 * 1 4 6 4 1 */ public class Solution { public List getRow(int rowIndex) { List pt = new ArrayList();原创 2016-12-20 06:57:11 · 115 阅读 · 0 评论 -
Leetcode 55. Jump Game
Simple recursion solution but got TLE.public class Solution { private boolean isJump = false; public void canJumpRecur(int cur, int k, int[] nums) { if (cur == nums.length-1) {原创 2016-12-28 12:01:52 · 139 阅读 · 0 评论 -
Leetcode 27. Remove Element
public class Solution { public int removeElement(int[] nums, int val) { int idx = 0; for (int num : nums) if (num != val) nums[idx++] = num;原创 2016-12-20 04:48:21 · 123 阅读 · 0 评论 -
Leetcode 448. Find All Numbers Disappeared in an Array
o(n) time and spacepublic class Solution { public List findDisappearedNumbers(int[] nums) { List list = new ArrayList(); int[] res = new int[nums.length]; for (int num :原创 2016-12-25 08:27:53 · 277 阅读 · 0 评论 -
Leetcode 442. Find All Duplicates in an Array
/** * As described in the problem, * 1 ≤ a[i] ≤ n (n = size of array) * therefore, we can use nums[nums[i]] = -nums[nums[i]] to help us which elements * appear twice. Note that elements in the a原创 2016-12-28 10:22:30 · 154 阅读 · 0 评论 -
Leetcode 238. Product of Array Except Self
http://stackoverflow.com/questions/2680548/given-an-array-of-numbers-return-array-of-products-of-all-other-numbers-no-div/** * The product of an index equals to the product left to the indx times the原创 2016-12-28 09:40:21 · 146 阅读 · 0 评论 -
Leetcode Majority Element II Extension
Extension of Majority Element II.Majority element is defined as numbers appear more than n/k times. public class Solution { public List majorityElement(int[] nums) { int n = nums.length, k转载 2016-12-28 07:27:16 · 189 阅读 · 0 评论 -
Leetcode 229. Majority Element II
public class Solution { public List majorityElement(int[] nums) { List res = new ArrayList(); if (nums.length == 0) return res; int candidate1 = 0, count1 = 0;原创 2016-12-28 07:19:51 · 157 阅读 · 0 评论 -
Leetcode 45. Jump Game II
BFS solution for reference. /** * Breadth first search o(n). * Map each number in the array to a level, * where numbers in level i are all the numbers that can be reached in i-1th jump. * e.g. 2原创 2016-12-31 01:08:12 · 149 阅读 · 0 评论 -
Leetcode 48. Rotate Image
/** * Example, matrix[i][j] 0=<i<=3, 0=<j<=3 * * 1 2 3 4 * 5 6 7 8 * 9 10 11 12 * 13 14 15 16 * * Transpose the matrix by switching i and j to matrix[j][i], * * 1 5原创 2016-12-31 07:29:59 · 161 阅读 · 0 评论 -
Leetcode 54. Spiral Matrix
/** * Intuitive solution. * Just add the spiral sequence to the result. */ public class Solution { public List spiralOrder(int[][] matrix) { List seq = new ArrayList<>();转载 2016-12-31 11:29:00 · 120 阅读 · 0 评论 -
Leetcode 90. Subsets II
NOT ACCEPTED CODEIdea is sort the array to make duplicates adjacent.If the current number is same as the previous one, then we only need to add current number to the last added subset. e.g. [1,原创 2016-12-27 11:57:28 · 152 阅读 · 0 评论 -
Leetcode 78. Subsets
public class Solution { public List> subsets(int[] nums) { List> res = new ArrayList<>(); res.add(new ArrayList()); Arrays.sort(nums); for (int num : nums)转载 2016-12-26 05:44:16 · 155 阅读 · 0 评论 -
Leetcode 389. Find the Difference
Intuitive approach.public class Solution { public char findTheDifference(String s, String t) { int[] cnt = new int[26]; for (int i=0; i<s.length(); i++) cnt[s.charAt(原创 2017-01-11 12:37:31 · 148 阅读 · 0 评论 -
Leetcode 202. Happy Number
public class Solution { public boolean isHappy(int n) { HashSet hs = new HashSet(); // if repeat, HashSet.add() will return false while (hs.add(n)) { // sum the原创 2017-01-09 13:17:35 · 201 阅读 · 0 评论 -
136. Single Number
Using XOR (Exclusive OR). XOR is commutative, that is, A^B^A = A^A^B = 0^B = B (A and B are integers). public class Solution { public int singleNumber(int[] nums) { int ret = 0;原创 2017-01-09 12:57:38 · 152 阅读 · 0 评论 -
Leetcode 88. Merge Sorted Array
public class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int i=0, j=0, k=0; int[] tmp = new int[m+n]; while (i<m && j<n) { if (nums1[原创 2016-12-21 08:12:15 · 156 阅读 · 0 评论 -
Leetcode 367. Valid Perfect Square
public class Solution { public boolean isPerfectSquare(int num) { long mid = 0; int low = 1, high = num; while (low <= high) { mid = (low+high)>>1;原创 2016-12-31 15:16:58 · 135 阅读 · 0 评论 -
Leetcode 268. Missing Number
Reference.public class Solution { public int missingNumber(int[] nums) { int diff = 0; for (int i=0; i<nums.length; i++) diff += nums[i]-i; return nums.length转载 2016-12-31 14:44:20 · 134 阅读 · 0 评论 -
Leetcode 74. Search a 2D Matrix
public class Solution { public boolean searchMatrix(int[][] matrix, int target) { int row = matrix.length; if (row == 0) return false; int col = matrix[0].length;原创 2016-12-31 13:55:59 · 141 阅读 · 0 评论 -
Leetcode 73. Set Matrix Zeroes
Reference.public class Solution { public void setZeroes(int[][] matrix) { int row = matrix.length; int col = matrix[0].length; // determine if the first row and原创 2016-12-31 13:11:39 · 206 阅读 · 0 评论 -
Leetcode 59. Spiral Matrix II
public class Solution { public int[][] generateMatrix(int n) { int[][] res = new int[n][n]; int up = 0, right = n-1, down = n-1, left = 0, elem = 1; while (true) {转载 2016-12-31 11:46:04 · 135 阅读 · 0 评论 -
Leetcode 169. Majority Element
public class Solution { public int majorityElement(int[] nums) { int i=1; int len = 1; Arrays.sort(nums); for (i=1; i<nums.length; i++) { if (nums[i] ==原创 2016-12-20 12:05:37 · 110 阅读 · 0 评论 -
Leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {原创 2016-12-28 03:00:07 · 150 阅读 · 0 评论 -
Leetcode 34. Search for a Range
/** * Two binary search. * When isLeft is true search the left index of the target, * else search the right index of the index. */public class Solution { public static int helper(int[] num原创 2017-01-03 10:33:06 · 208 阅读 · 0 评论 -
Leetcode 31. Next Permutation
/** * e.g. 1 2 3 4 * Step i. From right to left, find the first element at index i which breaks the ascending order, * if no such i exists, then the array is sorted as ascending order, return the原创 2017-01-03 09:41:17 · 167 阅读 · 0 评论 -
Leetcode 18. 4Sum
public class Solution { // two-pointer to search three numbers sum to target public static void threeSum(List> res, int start, int goal, int target, int[] nums) { for (int i=start; i<n原创 2017-01-02 11:26:39 · 212 阅读 · 0 评论 -
Leetcode 16. 3Sum Closest
/** * Similar with 3sum. * Difference is target now becomes -(nums[i]-1), a * and also need a variable diff to save the closest distance * between triplets and targets. */ public class Solution原创 2017-01-02 07:07:27 · 167 阅读 · 0 评论 -
Leetcode 15. 3Sum
/** * First sort the array, (i) * scan through the array, set every -nums[i] as a target, (ii) * for the rest elements i+1<=i<=n do a two-pointer two sum原创 2017-01-02 06:26:56 · 169 阅读 · 0 评论 -
Leetcode 11. Container With Most Water
/** * Two pointer. * Left and right are the two pointers indicate tallest lines, * whenever there is a taller line update the corresponding pointer. * Note that the volumn is determined by the sho原创 2017-01-02 02:49:57 · 124 阅读 · 0 评论 -
Leetcode 167. Two Sum II - Input array is sorted
/** * Two-pointer approach. * pointer low starts from 0, pointer high starts from length-1 * if nums[low]+nums[high] == target return low and high * else if nums[low]+nums[high] > target means we原创 2016-12-22 12:32:58 · 188 阅读 · 0 评论 -
Leetcode 162. Find Peak Element
O(n) approachpublic class Solution { public int findPeakElement(int[] nums) { int peak = nums[0]; for (int i=1; i<nums.length; i++) { if (nums[i] > peak) peak = num原创 2016-12-22 10:49:36 · 177 阅读 · 0 评论 -
Leetcode 153. Find Minimum in Rotated Sorted Array
/** * binary search approach, o(logN) */ public class Solution { public int findMin(int[] nums) { int low = 0, high = nums.length-1, mid; while (low < high) { mid =原创 2016-12-22 07:24:21 · 193 阅读 · 0 评论 -
Leetcode 122. Best Time to Buy and Sell Stock II
public class Solution { public int maxProfit(int[] prices) { if (prices.length < 2) return 0; int profits = 0; for (int i=1; i<prices.length; i++) if (prices[i]转载 2016-12-22 06:33:59 · 140 阅读 · 0 评论 -
Leetcode 217. Contains Duplicate
got a TLE using HashMappublic class Solution { public boolean containsDuplicate(int[] nums) { HashMap map = new HashMap(); for (int num : nums) { if (map.get(num) !=原创 2016-12-21 12:28:04 · 178 阅读 · 0 评论 -
Leetcode 209. Minimum Size Subarray Sum
/** * Using two pointers to maintain a window * the left pointer is used to add number to the sum, * the right pointer is used to cut number from the sum, * when sum >= s, save the length to recor原创 2016-12-23 03:37:11 · 159 阅读 · 0 评论