
算法
文章平均质量分 59
kylin_xue
这个作者很懒,什么都没留下…
展开
-
回溯算法总结
经典题型 排列和组合func permute(nums []int, idx int, p *[]int, visited *[]bool, res *[][]int) { if idx == len(nums) { tmp := make([]int, len(nums)) copy(tmp, *p) *res = append(*res, tmp) return } for i, v := range nums { if !(*visited)[i] { ...原创 2021-11-09 15:36:54 · 269 阅读 · 0 评论 -
图 -- 算法
图的搜索最短路径279 完全平方数word ladder原创 2020-04-01 12:44:53 · 148 阅读 · 0 评论 -
位运算 -- 算法
无符号右移 >>> 1001>>2 --> 0010带符号右移 >> 1001>>2 --> 1110左移 <<leetcode 338 比特位计数i&(i-1) 表示的含义是去掉 i最右边的1 。例如 8 & 7 = (1000 & 0111) = 0000 去掉...原创 2020-03-29 21:55:15 · 175 阅读 · 0 评论 -
堆 -- 算法
无序数组选择最小的k的数 大小为k的大顶堆,堆顶是k个数里面最大的,将数组中的元素一次推入,只要比堆顶元素小的,就将堆顶元素出队PriorityQueue<Freq> Java库是小顶堆实现的优先队列。index从0开始int parent(int index) (index-1) / 2int leftChild(int index) ...原创 2020-03-29 21:54:40 · 164 阅读 · 0 评论 -
字符串--算法
迭代递归动态规划回文子串:从中间向两边扩展判断是否是回文原创 2020-03-29 21:54:22 · 246 阅读 · 0 评论 -
Set and Map -- 算法
词频排序public String frequencySort(String s){ char[] chars = s.toCharArray(); LinkedHashMap<Character, Integer> map = new LinkedHashMap<>(); for(char c : chars){ if(map...原创 2020-03-14 17:30:17 · 186 阅读 · 0 评论 -
数组 -- 算法
二分查找循环遍历实现,重要的是了解循环不变量,通过在 [l...r] 这个范围中寻找target,这样就不会搞不清l和r如何赋值的边界条件了。int binarySearch(int[] arr, int n, int target) { int l = 0, r = n - 1; // 在[l...r]的范围里寻找target 【循环不变量 -- 有一个声明是不会发生...原创 2020-03-02 23:43:11 · 307 阅读 · 0 评论 -
树 -- 算法
递归加入元素到二分查找树二叉树的最小深度和最大深度递归方法// 使用BFS不会遍历所有节点int minDepth(TreeNode* root) { if(root == NULL) return 0; // 不为空的根节点深度为1 : <root, 1> queue<pair<TreeNode*,...原创 2020-03-13 08:59:23 · 148 阅读 · 0 评论