avatar
文章
102
标签
24
分类
10

主页
目录
  • 归档
  • 标签
  • 类别
友链
关于我
怀民亦未寝。
主页
目录
  • 归档
  • 标签
  • 类别
友链
关于我

怀民亦未寝。

高精度计算模板的使用
置顶|发表于2022-04-03|数据结构/算法
高精度计算有几种常见的类型: 两个很大的整数相加A, B的位数均小于等于10⁶ 两个很大的整数相减A, B的位数均小于等于10⁶ 一个很大的整数乘以一个比较小的整数A的位数小于等于10⁶,B的数值小于等于10⁹ 一个很大的整数除以一个比较小的整数A的位数小于等于10⁶,B的数值小于等于10⁹ 还有 两个很大的整数相乘 和 两个很大的整数相除 这两种情况,不过不常用,暂时不学了。 我们写数字习惯从高位开始写,但是模拟加减乘除时由于要做进位的操作,所以从低位开始存比较方便。即:数组第 0 位存个位,第 1 位存十位,第 2 位存百位······ 高精度加法C = A + B用变量 t 表示进位,要么是 1 要么是 0 。 123456789101112131415161718192021vector<int> add(vector<int> &A, vector<int> &B) { vector<int> C; // 和 int t = 0; // 1表示进位,0表示不进位 for ...
RocketMQ 基础
发表于2025-05-26|消息队列
RocketMQ 基础https://rocketmq.apache.org/ 为什么使用 MQ?-> MQ 的优势和劣势优势(作用): 应用解耦 异步提速 削峰填谷 劣势: 系统可用性降低 系统复杂度提高 异步消息机制 消息顺序性 消息丢失 消息一致性 消息重复使用 应用解耦:消费方存活与否不影响生产方系统的耦合性越高,容错性就越低,可维护性就越低。 主流 MQ 产品对比 ActiveMQ:Java 语言实现,万级数据吞吐量,处理速度 ms 级,主从架构,成熟度高 RabbitMQ:Erlang 语言实现,万级数据吞吐量,处理速度 us 级,主从架构 RocketMQ:Java 语言实现,十万级数据吞吐量,分布式架构,功能强大,扩展性强 Kafka:Scala 语言实现,十万级数据吞吐量,处理速度 ms 级,分布式架构,功能较少,应用于大数据较多 环境搭建略。 消息发送主要内容 基于 Java 环境构建发送与消息接受基础程序 单生产者-单消费者 单生产者-多消费者 多生产者-多消费者 发送不同类型的消息 同步消息 异步消息 单向消息 特殊的消息发送 延时消 ...
记录 Docker 设置新源记录解决 Error response from daemon
发表于2024-10-17|疑难杂症
问题用 Docker 拉取 MySQL 的时候报错: docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers). 解决方式:编写配置文件(2024/10/17 目前可用)将可用的镜像仓库地址写入 daemon.json 配置文件(没有就新建) vim /etc/docker/daemon.json写入: 123456789101112131415161718192021222324{ "registry-mirrors": [ "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com", "htt ...
JVM 垃圾回收相关知识概要
发表于2024-09-15|JVM
如何判断对象是否死亡(两种方法)? 引用计数法 可达性分析算法 引用类型简介 强引用 软引用 弱引用 虚引用 垃圾回收算法 标记-清除算法 复制算法 标记-整理算法 分代收集算法 内存分配与回收原则 对象优先在 Eden 区分配 大多数情况下,对象会在新生代 Eden 区分配,当空间不足时触发 Minor GC。 空间分配担保 在 Minor GC 之前,检查老年代是否有足够空间存放新生代对象。 判断对象是否死亡 引用计数法 通过计数器判断引用状态,不适用解决循环引用问题。 可达性分析算法 从 GC Roots 开始,遍历引用链判断对象是否可达。 垃圾回收算法 标记-清除算法 标记不需要回收的对象,回收未标记对象。 存在效率低和内存碎片问题。 复制算法 将内存划分为两部分,每次使用一部分,回收后将存活对象复制到另一部分。 缺点是可用内存减少一半。 标记-整理算法 将存活对象移至一端,清理无用内存。 适用于老年代,效率较低。 分代收集算法 新生代采用复制算法,老年代采用标记-清除或标记-整理算法。 常见垃圾收集器 Seria ...
LC-155-最小栈
发表于2024-06-16|数据结构/算法
题意设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。 int getMin() 获取堆栈中的最小元素。 思路代码12345678910111213141516171819202122232425class MinStack {public: stack<int> A, B; MinStack() {} void push(int val) { A.push(val); if (B.empty() || val <= B.top()) B.push(val); } void pop() { if (A.top() == B.top()) ...
Linux 常用命令整理
发表于2024-06-13|Unix
1. 目录结构/:所有文件和目录的根目录/usr/bin:存放系统的可执行文件,可以在任何目录下执行。/usr/local/bin:存放用户自己安装的可执行文件,可以在任何目录下执行。/etc: 存放系统的配置文件,如:/etc/profile 是环境变量的配置文件。/home: 每个用户的家目录,保存用户的私人数据,目录名默认和用户名相同。/opt: 存放用户额外安装的软件,类似 Windows 中的 Program Files 目录。 2. 常用命令文件 & 目录 查看和切换目录 1234567891011121314查看: pwd # 显示当前目录路径 ls # 列出当前目录下文件和目录 ls -l 或 ll # 列出当前目录下文件和目录(详细信息)切换目录: cd /opt # 切换到 /opt 目录 cd .. # 返回上一级目录 cd bin # 切换到当前目录的 ...
LC-617-合并二叉树
发表于2024-06-13|数据结构/算法
https://leetcode.cn/problems/merge-two-binary-trees/ 题面给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例 1: 注意: 合并必须从两个树的根节点开始。 思路123456789TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { if (t1 == NULL) return t2; // 如果t1为空,合并之后就应该是t2 if (t2 == NULL) return t1; // 如果t2为空,合并之后就应该是t1 // 修改了t1的数值和结构 t1->val += t2->val; // 中 t1->left = mergeTrees(t1->left, t2-&g ...
LC-106-从中序与后序遍历序列构造二叉树
发表于2024-06-13|数据结构/算法
https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/ 题面根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 思路12345678910111213141516171819202122232425262728293031323334353637383940TreeNode* traversal(vector<int>& inorder, vector<int>& postorder) { if (postorder.size() == 0) return NULL; // 后序遍历数组最后一个元素,就是当前的中间节点 int rootValue = postorder[postord ...
LC-112-路径总和
发表于2024-06-12|数据结构/算法
题面https://leetcode.cn/problems/path-sum/ 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。 思路递归写法12345678910111213141516171819202122232425class Solution {private: bool traversal(TreeNode* cur, int count) { if (!cur->left && !cur->right && count == 0) return true; // 遇到叶子节点,并且计数为0 if (!cur->left && !cur->right) return fals ...
LC-110-平衡二叉树
发表于2024-06-12|数据结构/算法
https://leetcode.cn/problems/balanced-binary-tree/ 题面给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。 示例 2: 给定二叉树 [1,2,2,3,3,null,null,4,4] 返回 false 。 代码(递归)12345678910111213// 返回以该节点为根节点的二叉树的高度,如果不是平衡二叉树了就返回-1int getHeight(TreeNode* node) { if (node == NULL) return 0; int leftHeight = getHeight(node->left); if (leftHeight == -1) return -1; int rightHeight = getHeight(node->right); if (rightHeigh ...
12…11
avatar
travis16
大三就读
文章
102
标签
24
分类
10
Follow Me
公告
I wanna make the best out of it.
最新文章
RocketMQ 基础2025-05-26
记录 Docker 设置新源记录解决 Error response from daemon2024-10-17
JVM 垃圾回收相关知识概要2024-09-15
LC-155-最小栈2024-06-16
Linux 常用命令整理2024-06-13
分类
  • JVM3
  • Java5
  • Unix1
  • 数据库1
  • 数据结构/算法82
  • 消息队列1
  • 疑难杂症1
  • 缓存2
标签
搜索 栈 递推 树 递归与递推 队列 模拟 贪心 图论 哈希表 数据结构 链表 二分 排序 基础算法 枚举 滑动窗口 优先队列 剑指Offer 二叉树 字符串 数论 动态规划 前缀和
归档
  • 五月 20251
  • 十月 20241
  • 九月 20241
  • 六月 202435
  • 二月 20242
  • 一月 20241
  • 十二月 20232
  • 十月 20231
©2020 - 2025 By travis16
粤ICP备2022058194号