算法
文章平均质量分 85
qq_36091872
这个作者很懒,什么都没留下…
展开
-
双指针
167 两数之和II 输入有序数组 public int[] twoSum(int[] numbers, int target) { if(numbers==null || numbers.length==0) return null; int i=0,j=numbers.length-1; while(i<j)...原创 2019-04-28 11:21:52 · 113 阅读 · 0 评论 -
排序
选择排序从数组中选择最小元素,将它与数组的第一个元素交换位置。再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。不断进行这样的操作,直到将整个数组排序。选择排序需要 ~N2/2 次比较和N次交换,它的运行时间与输入无关,这个特点使得它对一个已经排序的数组也需要这么多的比较和交换操作。...原创 2019-04-25 21:04:05 · 85 阅读 · 0 评论 -
贪心算法
455 分发饼干 public int findContentChildren(int[] g, int[] s) { if(g==null || g.length==0 || s==null || s.length==0) return 0; Arrays.sort(g); Arrays.sort(s); ...原创 2019-05-08 18:20:02 · 159 阅读 · 0 评论 -
二分查找
正常实现 public int binarySearch(int[] nums, int key) { int l=0,h=nums.length-1; while(l<=h){ int m=l+(h-l)/2; if(nums[m]==key){ return m; }else if(nums[m]<key){ l=m+1; }els...原创 2019-05-08 20:48:06 · 69 阅读 · 0 评论 -
分治算法
241 为运算表达式设计优先级注意:添加了一个map来存储已经计算过的String,减少重复计算 public Map<String,List<Integer>> map=new HashMap<>(); public List<Integer> diffWaysToCompute(String input) { i...原创 2019-05-09 21:13:11 · 68 阅读 · 0 评论 -
搜索
BFSBFS 只能求解无权图的最短路径在程序实现 BFS 时需要考虑以下问题:队列:用来存储每一轮遍历得到的节点;标记:对于遍历过的节点,应该将它标记,防止重复遍历。计算在网格中从原点到特定点的最短路径长度[[1,1,0,1], [1,0,1,0], [1,1,1,1], [1,0,1,1]]1 表示可以经过某个位置,求解从 (0, 0) 位置到 (tr, tc) 位置的...原创 2019-05-23 21:09:52 · 106 阅读 · 0 评论 -
动态规划(含0-1背包)
64 最小路径和https://leetcode-cn.com/problems/minimum-path-sum/1处先判断j==0是因为如果判断先判断i==0时若j也为0,在dp[j]=dp[j-1];会出现数组越界。class Solution { public int minPathSum(int[][] grid) { if(grid==null || gr...原创 2019-07-03 09:53:04 · 118 阅读 · 1 评论