- 博客(344)
- 收藏
- 关注
原创 C++——异常
看下面这个代码,首先main函数中try f3,进入f3主体内部,f3中又调用f2,又进入f2中,f2中又调用f1,进入f1中,然后再f1中触发越界访问,跳出f1,返回到f2中看是否有catch接收,又退回到f3中看是否有catch接收,最终在main中发现有catch接收out_of_range异常。如果有一个块抛出一个异常,捕获异常的方法会使用 try 和 catch 关键字。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常.catch 关键字用于捕获异常,可以有多个catch进行捕获。
2025-05-27 22:01:26
630
原创 Spring_Boot(一)Hello spring boot!
再main方法中调用 SpringApplication.run(HelloApplication.class,args);通过HelloController控制器调用@RequestMapping来进行http请求。新建项目加入 spring_web 依赖,生成如下 pom.xml文件,即为代码配置。RequestMapping方法需要在主函数中进行run调用,才可以执行。方法就可以直接在main函数中打印 hello world。再main方法中直接使用。
2025-05-19 23:35:00
277
原创 Java(基础)day02 输入、输出、数组、重载、递归
(5) (C++11起)std::string to_string(long double value);
2025-05-19 11:22:19
1041
原创 Java(基础) day01 初识Java
不同于 C 或 C++,Java 是一种强类型静态语言,并且它的基本数据类型具有固定的尺寸,不受底层操作系统的干扰。因此,在 Java 中,无论是在何种平台上执行,通常情况下,在现代 32 位或 64 位系统上,,此时JVM会将字节码转换成平台能够理解的形式来运行。是由字节码组成的平台无关、面向JVM的文件。Java中的int不管在什么环境下都是四个字节。float 类型在 Java 中占四个字节。double在任何系统下都占8个字节。short在任何系统下都占2个字节。long在任何环境下都是八个字节。
2025-05-16 16:01:51
391
原创 C++——哈希表
另外,最初的错误想法是让新桶直接将旧桶中的vector进行一次拷贝,把每个链表的第一个节点指针拷入就行,最后发现肯定不能这样,因为后续对桶进行扩容,取模的值也会发生改变,所以旧桶中的元素在新的模值下就会映射到新的结点中。开散列法又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。设有n个d位数,每一位可能有r种不同的符号,这r种不同的符号在各位上出现的频率不一定。
2025-04-28 17:50:39
882
原创 c++ unordered_map和map的区别
unordered中文翻译即 “无序的” ,自然地,unordered_map也就是不排序的map的意思。unordered_set与set和unordered_map与map是可以类比的,它们的区别大致是一样的。unordered_map在c++11加入的标准模板库,c++11以前是无法使用unordered_map、unordered_set、auto、stoi等标准模板的。unordered_map包含在unordered_map头文件中,即如果想要使用时,引入下面代码即可。
2025-04-24 11:01:41
255
原创 哈希(九)350. 两个数组的交集 II
请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。定义俩个map字典来进行计数操作,遍历dict1,在dict2中找到和它重复出现的交集元素,并捕获他们之间的较小值count,将该交集元素插入k次放入结果数组中。
2025-04-23 15:45:11
257
原创 哈希(八)349. 两个数组的交集 用unordered_set 替换 set
使用了set进行去重,然后利用俩个迭代器遍历俩个set,寻找重复的元素。也可以利用find接口来进行俩个set的求交集操作。输出结果中的每个元素一定是。[4,9] 也是可通过的。
2025-04-23 11:45:47
161
原创 哈希(七)961. 在长度 2N 的数组中找出重复 N 次的元素 简单
【代码】哈希(七)961. 在长度 2N 的数组中找出重复 N 次的元素 简单。
2025-04-23 11:34:46
176
原创 加法模拟 66. 加一
你可以假设除了整数 0 之外,这个整数不会以零开头。最高位数字存放在数组的首位, 数组中每个元素只存储。数组所表示的非负整数,在该数的基础上加一。加 1 得到了 9 + 1 = 10。因此,结果应该是 [1,0]。输入数组表示数字 4321。输入数组表示数字 123。输入数组表示数字 9。
2025-04-19 11:07:32
161
原创 dfs(二十五)22. 括号生成
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且。使用左右俩个全局变量也可以传参数作为括号是否合法的匹配标准。
2025-03-22 12:28:04
336
原创 dfs(二十四)47. 全排列 II
使用二维数组保存所有的全排列次序,并使用set容器来去重。给定一个可包含重复数字的序列。返回所有不重复的全排列。
2025-03-20 23:36:27
262
原创 dfs(二十三)1863. 找出所有子集的异或总和再求和
[5,1,6] 的异或总和为 5 XOR 1 XOR 6 = 2。- [1,3] 的异或总和为 1 XOR 3 = 2。- [5,1] 的异或总和为 5 XOR 1 = 4。- [5,6] 的异或总和为 5 XOR 6 = 3。- [1,6] 的异或总和为 1 XOR 6 = 7。每个子集的全部异或总和值之和为 480。- [1] 的异或总和为 1。- [3] 的异或总和为 3。- [5] 的异或总和为 5。- [1] 的异或总和为 1。- [6] 的异或总和为 6。
2025-03-20 22:46:57
515
原创 dfs(二十)257. 二叉树的所有路径
因为在dfs操作的时候使用的是全局变量temp来记录每次的路径元素,使用vector可以很容易的进行push pop 操作,其实使用string temp也可以,不过会比较麻烦。访问到叶子结点时,说明path中存放了一条合理的路径,我们直接将其放入res结果即可,在函数返回的时候path中之前新插入的元素随着栈帧的返回自行进行pop,省略了我们需要进行pop这一步骤。使用dfs先将每条路径存储在一个vector中,最后再从vector转入string中。,返回所有从根节点到叶子节点的路径。
2025-03-20 15:47:25
358
原创 dfs(十九)230. 二叉搜索树中第 K 小的元素
使用一个全局变量count来进行计数,中序遍历访问到第k个就进行更新全局变量res的结果。,请你设计一个算法查找其中第。小的元素(从 1 开始计数)。给定一个二叉搜索树的根节点。
2025-03-20 11:55:35
204
原创 dfs(十八)98. 验证二叉搜索树
给你一个二叉树的根节点root,判断其是否是一个有效的二叉搜索树。truefalse根节点的值是 5 ,但是右子节点的值是 4。[1, 104]性质解法二叉搜索树的中序遍历为一个有序序列!
2025-03-20 11:45:35
328
原创 dfs(十七)814. 二叉树剪枝 中等
给你二叉树的根结点root,此外树的每个结点的值要么是0,要么是1。返回移除了所有不包含1的子树的原二叉树。节点node的子树为node本身加上所有node的后代。只有红色节点满足条件“所有不包含 1 的子树”。右图为返回的答案。
2025-03-20 10:43:40
376
原创 树dfs(十六)129. 求根节点到叶节点数字之和 中等!!
本来是上面这样写的, 但遇到了有左右子树不存在的情况,导致后续left和right变量的更新失败,所以使用创建一个新变量 ret 来保存左右子树的结果 并且在向下递归的时候判断一下子树是否存在。这道题在递归函数名上需要更多的一个参数,prenum,要传入当前节点之前的大小,并且每深入一层就要给pre乘上10,向下传入pre * 10 + root->val。因此,数字总和 = 495 + 491 + 40 =计算从根节点到叶节点生成的。给你一个二叉树的根节点。是指没有子节点的节点。
2025-03-18 11:24:09
235
原创 树dfs(十五)2331. 计算布尔二叉树的值
AND 与运算节点的值为 False AND True = False。OR 运算节点的值为 True OR False = True。根节点是叶子节点,且值为 false,所以我们返回 false。根节点的值为 True ,所以我们返回 true。上图展示了计算过程。
2025-03-18 11:13:50
324
原创 dfs(十四)24. 两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。函数体:先去处理⼀下第⼆个结点往后的链表,然后再把当前的两个结点交换⼀下,连接上后⾯处。递归函数的含义:交给你⼀个链表,将这个链表两两交换⼀下,然后返回交换后的头结点;递归出⼝:当前结点为空或者当前只有⼀个结点的时候,不⽤交换,直接返回。
2025-03-18 09:06:30
307
原创 dfs(十三)206. 反转链表
先使用dfs访问到最后一个元素,然后用newhead保存新的头结点,最后使用head修改当前指针的后一个指针指向实现逆序操作。链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?,请你反转链表,并返回反转后的链表。
2025-03-17 23:24:51
353
原创 dfs(十一)面试题 08.06. 汉诺塔问题
在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。请编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子只能叠在比它大的盘子上。(1) 每次只能移动一个盘子;
2025-03-17 21:36:17
201
原创 拓扑排序(二)210. 课程表 II
总共有 4 门课程。要学习课程 3,你应该先完成课程 1 和课程 2。并且课程 1 和课程 2 都应该排在课程 0 之后。总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺序为。返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回。多了一步再每次出队列的时候给res中进行一步尾插。如果不可能完成所有课程,返回。因此,一个正确的课程顺序是。
2025-03-13 19:37:05
245
原创 拓扑排序(一)207. 课程表
总共有 2 门课程。学习课程 1 之前,你需要先完成课程 0;并且学习课程 0 之前,你还应先完成课程 1。总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。在选修某些课程之前需要一些先修课程。请你判断是否可能完成所有课程的学习?,表示如果要学习课程。
2025-03-13 19:24:09
233
原创 多源BFS(二十一)1162. 地图分析 中等
请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的距离是最大的,并返回该距离。如果网格上只有陆地或者海洋,请返回。海洋单元格 (1, 1) 和所有陆地单元格之间的距离都达到最大,最大距离为 2。海洋单元格 (2, 2) 和所有陆地单元格之间的距离都达到最大,最大距离为 4。,上面的每个 单元格 都用。这两个单元格之间的距离是。你现在手里有一份大小为。
2025-03-13 12:43:36
172
原创 多源BFS(二十)1765. 地图中的最高点 中等
将所有的水域坐标加入队列中,然后利用队列进行bfs操作扩散至周围所有陆地,并更新其高度。任意安排方案中,只要最高高度为 2 且符合上述规则的,都为可行方案。找到一种安排高度的方案,使得矩阵中的最高高度值。所有安排方案中,最高可行高度为 2。蓝色格子是水域格,绿色格子是陆地格。如果有多种解法,请返回。上图展示了给各个格子安排的高度。
2025-03-13 12:08:55
333
操作系统-银行家算法-银行家算法是操作系统的经典算法之一
2023-01-26
《二叉树及应用》 数据结构中二叉树使用
2023-01-26
数据结构课程设计-最短路径
2023-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人