Algorithms
文章平均质量分 70
帕尼尼270
板砖工
展开
-
[Algorithms]union-find连通性算法/quick-find/quick-union/加权quick-union
union-find连通性算法通俗讲就是寻找两点之间的连通,调用connected():如果某一对整数中两个触点已经连通,就继续处理下一对,如果不连通,则调用union()并打印这对触点。模板package union_find;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.St...原创 2018-02-08 18:34:24 · 438 阅读 · 0 评论 -
[Algorithms]递归算法中sort的递归理解以及原地归并和自顶向下递归排序
递归算法其实就是拆解+归并才是完整的,不能单看把两个有序数组归并,而是学会拆分,我……递归算法里有个非常烧脑的……大概我脑子不好的递归理解就是那个双层嵌套的sort递归,我实在无法理解,所以画了个图,来排{9084}这四个数就是一开始完全不理解这也能递归??画图后果然清晰多了打印一共执行了三次原地归并,我却不知道怎么来的……所以…… private static void...原创 2018-03-19 22:24:47 · 623 阅读 · 0 评论 -
[Algorithms]查找之符号表SybolTable
符号表API 1.使用泛型 2.键不能为空 3.get方法是否返回空来测试给定的键是否存在于符号表中 4.关于删除 :延时删除---》将键对应的值置为空 即使删除---》立即从表中删除指定的键如put(key,null) 5.迭代:所有实现必须包含iterator方法来返回一个迭代器 6.所有对象都继承了equals()方法,自定义的键需要重写equals()方法 package Chapter3...原创 2018-07-12 16:55:33 · 373 阅读 · 0 评论 -
[LeetCode&Algorithms]34.Find First and Last Position of Element/二分查找/第一个key/最后一个key/中间值mid的取值趋向
什么是二分数组必须有序。使用lo和hi两个变量,进入循环,不断将数组arr的中间键mid和key比较,如果标中,返回mid,否则将查找范围缩小一半,俗称二分arr[mid]>key ===》target在数组左边arr[mid]<key ===》target在数组右边当数组无重复且有序/*这个比较简单,如果 * point : * 1.int mid =...原创 2019-09-13 22:30:04 · 230 阅读 · 0 评论 -
[Algorithms]选择排序/SelectSort
在一组数据中,从第一个数开始,作为最小值,并取这个数作为一个临时数,往后遍历第一遍,选择最小的数字,如果有比临时数小的,则这个数和临时数交换,成为新的临时数,放在最左边。第一遍遍历结束后,从第二个数开始,第二个数又是一个临时数,以此类推。这样最左边就是已经排好的有序的数了。代码思路:外层循环用out,从数组开头开始向高位增长,内层循环用in,这些都是作为下标的。内层in结束后,m...原创 2017-11-27 22:28:12 · 365 阅读 · 0 评论 -
[LeetCode&Algorithms]121.买卖股票的最佳时机的三种解法/动态规划
给个github,点击这里其他题目思路一暴力遍历: 外层for一个元素 内层for 后面的元素依次和外层的那个对比,维持一个max,找到最大的那个 时间复杂度O(n^2) 非常慢…… 的 public static int LoopMaxProfit(int[] prices) { int max = 0; int profit; ...原创 2019-02-14 10:19:11 · 599 阅读 · 0 评论 -
[LeetCode&Algorithms]78.Subsets/子集/回溯法Backtracking+dfs详解
参考了以下的人终于搞懂了点参考1参考2参考378 子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The so...原创 2019-03-11 10:41:18 · 423 阅读 · 0 评论