程序设计
文章平均质量分 56
计算机界的bug
这个作者很懒,什么都没留下…
展开
-
回溯法经典题目训练,一文读懂拿下
回溯法 废话不多说:回溯模板 void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 } } 回溯是递归的副产品,只要有递归就会有回溯,所以回溯法也经常和二叉树遍历,深度优先搜索混在一起原创 2021-12-22 09:40:34 · 417 阅读 · 0 评论 -
LRU (最近最少使用) 缓存机制
LRU (最近最少使用) 缓存机制 leetcode146:https://leetcode-cn.com/problems/lru-cache/ 实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组原创 2021-12-17 17:00:24 · 194 阅读 · 0 评论 -
前序/后序与中序遍历序列构造二叉树构造二叉树
从前序与中序遍历序列构造二叉树 Leetcode105 https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 从后续与中序遍历序列构造二叉树 Leetcode106: https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/ 以105为例分析:本质利用原创 2021-12-17 14:40:04 · 665 阅读 · 0 评论 -
最全二叉树详解
遍历二叉树的方法合集 1.二叉树的中序遍历(leetcode 94) 2.二叉树的前序遍历(leetcode 144) 3.二叉树的后序遍历(leetcode 145) 递归解法 前序遍历 public static void preOrderRecur(TreeNode head) { if (head == null) { return; } System.out.print(head.value + " "); preOrderRecur(head.le原创 2020-10-27 10:08:58 · 709 阅读 · 0 评论 -
看了就懂的递归解析
递归解题三部曲 何为递归?程序反复调用自身即是递归。 我自己在刚开始解决递归问题的时候,总是会去纠结这一层函数做了什么,它调用自身后的下一层函数又做了什么…然后就会觉得实现一个递归解法十分复杂,根本就无从下手。 相信很多初学者和我一样,这是一个思维误区,一定要走出来。既然递归是一个反复调用自身的过程,这就说明它每一级的功能都是一样的,因此我们只需要关注一级递归的解决过程即可。 如上图所示,我们需要关心的主要是以下三点: 整个递归的终止条件。 一级递归需要做什么? 应该返回给上一级的返回值是什么? 因此,也就原创 2020-10-13 09:33:39 · 1453 阅读 · 0 评论 -
ACM常用算法及练习
ACM常用算法及练习 (想学请先放弃) 第一阶段:练bai经典常用算法,下面的每个算法给我打上十du到二十遍,同时自己精简zhi代码 1.最短路(Floyd、Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal要用并查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内) 5.叉乘、判线段相交、然后写个凸包. 6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简) 7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式. 8.原创 2020-09-27 10:42:24 · 870 阅读 · 0 评论