- 博客(16)
- 收藏
- 关注
原创 [Algorithm]九章九之二:Sequence
116. Jump Game:点击打开链接 思路:贪心 例如:[2,3,1,1,4]--每个位置可以跳的步数 0,1,2,3,4 --每个位置index 分析:初始化reach=nums[0]可以跳2步,从1开始遍历i,遍历到的位置+该位置可以走的步数>=当前的reach 更新reach值就是可以到达的位置 直到reach大于...
2017-06-29 10:34:44 308
原创 [Algorithm]九章九之一:Matrix DP
109. Triangle:点击打开链接 方法一:自底向上 例如:从6开始,依赖于4和1中小者,再加上本身 注意:这种三角形第n行的长度是n+1,一共有n-1行,第0行的长度为1, Time:O(n^2),而如果用DFS则需O(2^n),因此可知DP优化了很多 [ [2], [3,4], [6,5,7], [4,1,8,3] ] [ [2],...
2017-06-27 23:46:01 363
原创 [LeetCode]447.Number of Boomerangs
题目大意:点击打开链接 public class Solution { public int numberOfBoomerangs(int[][] points) { int result=0; if(points==null || points.length==0){ return 0; }
2017-06-27 09:45:31 260
原创 [LeetCode]594.Longest Harmonious Subsequence
题目大意:点击打开链接 思路:将数组每个元素和它出现的次数放入HashMap 然后在keySet()里判断,每个key和比它大一的key+1出现次数之和,但前提得有key+1 public class Solution { public int findLHS(int[] nums) { if(nums==null || nums.length=
2017-06-23 09:59:15 197
原创 [LeetCode]500.keyboard Row
题目大意:点击打开链接 思路:1. 先把键盘里同一行的字母放入一个string,因此有三个strings 2. 将每一个string里的字母和这个string在数组里的索引放入HashMap 3. 然后就开始检查给定字符数组words里的每一个word对应的字母, 一遍历到不符合条件的字母,立刻break整个word
2017-06-23 09:23:12 243
原创 [LeetCode]599.Minimum Index Sum of Two List
题目大意:点击打开链接 public class Solution { public String[] findRestaurant(String[] list1, String[] list2) { Map map=new HashMap<>(); for(int i=0;i<list1.length;i++){
2017-06-23 06:51:18 270
原创 [LeetCode]575.Distribute Candies
题目大意:点击打开链接 思路:sister能得到一半数量的糖果,如果得到的每一个糖果都是一个不同的种类,sister能得到candies.length/2种糖果,这也是最大值。 [1,2,3,3,4,4],这种情况能得到candies.length/2种 [1,1,1,2,2,2],这种情况能得到set.size()种 public class So
2017-06-23 06:07:19 334
原创 [LeetCode] 624.Maximum Distance in Arrays
题目大意:点击打开链接 例如:[[1,2,3],[4,5],[0,6]] 思路:1. arrays里的第一个list的第一个和最后一个值分别记做当前的最小值和最大值, [[1,2,3],[4,5],[1,2,3]] 2. 从第二个list开始遍历arrays,它的最大最小值,与当前的最小值和最大值形成当前的最大distance,记做dis,
2017-06-23 05:32:59 438
原创 [Algorithm]Quick Select问题
5.Kth Largest Element:点击打开链接 例如:[9,3,2,4,8],k=3,Output:4,也就是第3rd大的是4,[2,3,4,8,9] 思路:1. 用当前数组中间的数作为pivot标杆,用O(n)的时间使得大于pivot的数都在左边部分,小于pivot的数都在右边部分 2. 然后就要进行一轮判断,如果判断出k会在左边部分,右边部分就不用再递归了
2017-06-22 02:18:19 619
原创 [LeetCode] Merge问题
88.Merge Sorted Array:点击打开链接 public class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { //从后往前放比较过程中的较大值 int i=m-1,j=n-1,index=m+n-1; while(i>=0 && j>=0
2017-06-18 03:53:01 259
原创 [LeetCode] 581. Shortest Unsorted Continuous Subarray
题目大意:点击打开链接 例如:index: 0 1 2 3 4 5 6 nums: [2,6,4,8,10,9,15] temp: [2,4,6,8,9,10,15] Output:5 思路:就是克隆一个nums记做temp,并排序。 然后从头开始比较nums和temp里相应对位置的每一
2017-06-17 01:33:29 340
原创 [Algorithm] Palindrome 问题
9. Palindrome Number:点击打开链接 public class Solution { public boolean isPalindrome(int x) { //不同解题思维 int temp = 0; int startX=x; while(x>0){ temp = temp*10 + (x %
2017-06-12 07:37:06 415
原创 [Algorithm]九章八:Data Structure
128. Hash Function:点击打开链接 思路:所有的sum算完最后取模,和一边算一边取模,最后的结果是一样的 但是边算边取可以防止超出范围 class Solution { /** * @param key: A String you should hash * @param HASH_SIZE: An integer ...
2017-06-12 07:29:12 607
原创 [Algorithm]九章七:Two Pointer
604. Window Sum:点击打开链接 例如:[1,2,7,8,5], k=3 sum[0]=nums[0]+nums[1]+nums[2]=10 sum[1]=sum[0]-nums[0]+nums[0+3]=17,也就是说sum[1]=10-1+8 sum[2]=sum[1]-nums[1]+nums[1+3]=20,也就是说sum[2]=17-2+5 窗口向后滑动,要减去(滑...
2017-06-12 07:27:50 1711
原创 [Algorithm]九章六之二: Array
6. Merge Two Sorted Arrays :点击打开链接 class Solution { /** * @param A and B: sorted integer array A and B. * @return: A new sorted integer array */ public int[] mergeSortedArray(i
2017-06-12 07:24:15 512
原创 [Algorithm]九章六之一:LinkedList
35.Reverse Linked List :点击打开链接 /** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { * this.val = val; * ...
2017-06-10 01:24:11 449
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人