- 博客(62)
- 收藏
- 关注
原创 代码随想录 算法训练 Day23:回溯算法part02
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。2 和 3 可以形成一组候选,2 + 2 + 3 = 7。注意 2 可以使用多次。说明: 所有数字(包括目标数)都是正整数。解集不能包含重复的组合。candidates 中的每个数字在每个组合中只能使用一次。如果至少一个数字的被选数量不同,则两种组合是不同的。7 也是一个候选, 7 = 7。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。
2025-06-05 17:33:34
282
原创 代码随想录 算法训练 Day22:回溯算法part01
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。该列表不能包含相同的组合两次,组合可以以任何顺序返回。的字符串,返回所有它能表示的字母组合。所有可能的有效组合的列表。
2025-06-04 17:47:29
297
原创 代码随想录 算法训练 Day14:二叉树part02
这道题目 一些做过的同学 理解的也不够深入,建议大家先看我的视频讲解,无论做过没做过,都会有很大收获。大家 要先看视频讲解,就知道以上我说的内容了,很多录友刷过这道题,但理解的还不够。什么是深度,什么是高度,如何求深度,如何求高度,这里有关系到二叉树的遍历方式。先看视频讲解,和最大深度 看似差不多,其实 差距还挺大,有坑。104.二叉树的最大深度 (优先掌握递归)111.二叉树的最小深度 (优先掌握递归)101. 对称二叉树 (优先掌握递归)226.翻转二叉树 (优先掌握递归)先看视频讲解,会更容易一些。
2025-05-30 14:06:14
136
原创 代码随想录 算法训练 Day10:栈与队列part01
要知道栈为什么适合做这种类似于爱消除的操作,因为栈帮助我们记录了 遍历数组当前元素时候,前一个元素是什么。大家先自己思考一下 有哪些不匹配的场景,在看视频 我讲的都有哪些场景,落实到代码其实就容易很多了。给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。可能大家惯性思维,以为还要两个队列来模拟栈,其实只用一个队列就可以模拟栈了。建议大家掌握一个队列的方法,更简单一些,可以先看视频讲解。讲完了栈实现队列,队列实现栈,接下来就是栈的经典应用了。
2025-05-23 16:47:58
635
原创 代码随想录 算法训练 Day9:字符串part02
字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。建议:这道题目基本把 刚刚做过的字符串操作 都覆盖了,不过就算知道解题思路,本题代码并不容易写,要多练一练。输入:输入共包含两行,第一行为一个正整数 k,代表右旋转的位数。例如,对于输入字符串 "abcdefg" 和整数 2,函数应该将其转换为 "fgabcde"。输出:输出共一行,为进行了右旋转操作后的字符串。
2025-05-22 16:48:27
426
原创 代码随想录 算法训练 Day8:字符串part01
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。建议:对于线性数据结构,填充或者删除,后序处理会高效的多。输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]
2025-05-21 17:19:15
392
原创 代码随想录 算法训练 Day7:哈希表part2
满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。建议:本题虽然和 两数之和 很像,也能用哈希法,但用哈希法会很麻烦,双指针法才是正解,可以先看视频理解一下 双指针法的思路,文章中讲解的,没问题 哈希法很麻烦。杂志字符串中的每个字符只能在赎金信字符串中使用一次。
2025-05-20 17:45:56
825
原创 代码随想录 算法训练 Day6:哈希表part1
先介绍一些基本概念。哈希表:一种通过哈希函数将键(key)映射到存储位置的数据结构(我理解是一种思想)。哈希函数:一种将任意长度的输入(如字符串、文件)转换为固定长度输出(通常为数字)的算法,比如我们生活中常见的md5算法。这个固定长度的输出叫做哈希值。哈希表大小:是底层数组的固定容量,用于限定键值对的存储位置范围(通过计算下标)。
2025-05-19 17:49:55
654
原创 代码随想录 算法训练 Day2:数组
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。: 本题关键在于理解滑动窗口,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。拓展题目可以先不做。输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]: 本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。
2025-05-15 17:40:59
414
原创 代码随想录 算法训练 Day1:数组
示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。元素的顺序可以改变。
2025-05-14 17:25:52
281
原创 由 JRE 软链接依赖引发的故障排查
Java应用 SAP 系统自带了一个 JRE,但在Ubutnu2004上部分功能不正常。初步排查发现,该 JRE 版本来源不明(用户也说不清是哪里来的)。:从 Ubuntu 2004 launchpad 下载的 deb 包,解压后将其jre目录替换 SAP 自带的 JRE。:替换后应用报错,但若在系统中安装,则不会出现此问题。
2025-02-28 17:00:48
274
原创 Ubuntu上如何获取分区的可用空间
最近工作需要获取指定磁盘分区的可用空间,在这里记录一下。网上找的资料一般用的是statvfs获取的,不过这种方案有缺陷,这里先简单介绍一下。
2024-10-22 17:04:18
501
原创 新手向-pkg-config的原理和使用
pkg-config是一个用于链接库的工具,可以简化编译的语句。# 不使用pkg-config# 使用pkg-configpkg-config帮我们自动链接了opencv相关的库,省得我们自己写了。
2024-10-18 14:26:48
490
原创 新手向-二分法总结
数组长度为n,第一次取中位数区间长度变为n/2,第二次变成n/4,第三次变成n/8,....,以此类推,最大操作次数 k 满足 n/(2的k次方)=1, 即k=log2(n)。二分查找的核心在于维护一个搜索区间 [left, right],每次将区间一分为二,并根据目标值 target 与中间值 middle的比较结果调整区间。加上 `left` 是为了避免溢出,并且确保 `mid` 在正确的范围内。为何 `mid` 计算公式是 `left + (right - left) / 2`?
2024-10-14 17:42:56
356
原创 ubuntu2004上的glib编译教程
然后尝试debuild,这里会编译不过出去,不过dbuild会自动生成一些编译文件,不要删除。最近因为工作需要编译glib,写文章记录一下编译流程。接下来,我们按照install.in的内容进行本地编译。根据control文件的提示安装对应的依赖。这样就编译并安装完成了。
2024-08-09 16:42:56
310
翻译 新手如何为OpenJDK社区提交贡献?
当我们打算为OpenJDK社区提交贡献的时候,先不用考虑技术细节。我们自己的目标是:1. 获取知识。2. 提高技能。3. 提高知名度。4. 交朋友。5. 证明对Java的热爱。等等。
2023-11-21 17:20:21
367
原创 Ubuntu2004字体不清晰,排查流程
昨天一早来发现平时用的Ubuntu2004物理机的字体变得很模糊,之前还是好好的,这里记录一下解决方案。
2023-11-10 09:25:50
973
原创 遇到java.security.AccessControlException:access denied怎么办?
今天工作中遇到了如下报错,记录一下解决方案。这个问题出现在openjdk8启动网页端Java应用。
2023-11-08 15:51:41
1630
原创 JDK API Diff Report Generator——Java版本对比工具
今天查资料找到了除了EMT4J之外,其他可以用于Java版本迁移的工具。这里简单的记录一下。非Java er,有不同意见欢迎评论区交流。
2023-10-27 16:47:50
331
原创 ubuntu2004上安装openjdk6
今天因为工作需要要在ubuntu2004上安装openjdk6,还是有点麻烦的,这里记录一下过程。安装了这些依赖之后再次安装我们首先下载的openjdk开头的包,即可成功安装。,选择对应的架构并将openjdk开头的包全部下载回来。libpng12-0需要额外的操作,参考博客在。openjdk的下载地址在。
2023-10-23 11:26:38
318
原创 如何ubuntu2004上运行Java小程序(Applet网页插件)
oracle8的jre里自带一个插件libnpjp2.so,这个插件可以用来开发Java applet。不过oracle8的jre只提供amd版本,不提供arm版本,导致使用了applet的业务系统无法在arm上运行,本次解决的就是这个问题。libnpjp2.so只在oracle的jre里有,jdk里没有,原因不明。
2023-10-16 10:52:12
515
原创 为什么float可以定义成float x= 33.1f的形式?
此时,如果我们要将某个变量定义为单精度数字,需要额外进行处理,也就是类似如下表达式,在数字后面加个f。最近在重温C语言的内容,在b站看课,看到float x= 33.1f,不明白为什么数字中会有f。0.1可以写成1/10,而10的分解质因数为2 * 5,2可以用二进制表示,但是5不能。二进制表示小数只能表示成1/2,1/4,1/8这样的形式,1/5=1/8+3/40。因此在这种编译器下,定义的变量类型是float还是double,默认都是双精度的。因为二进制无法准确的表示0.1。
2023-04-01 20:00:59
223
原创 Ubuntu上的OpenJDK8编译流程
最近因为工作需要编译了openjdk-8,在这里记录一下编译流程和遇到的问题。本次编译了amd64和arm64两个版本。
2023-02-02 16:55:30
893
原创 Ubuntu 2004 格式化分区导致无法启动 解决流程
昨天想格式化优盘,没注意把系统的一个分区给格了 .....第二天来公司电脑就起不来了,一翻操作误打误撞给救回来了。
2023-02-01 11:02:47
437
原创 在Ubuntu上用cups api实现打印功能
最近由于工作需要,要写一套打印相关的接口。Linux上一般自带一套管理打印机的通用工具,叫cups。它提供了打印机的连接,配置,打印等等功能,因此我这次选择用cups的api来实现打印相关的内容。cups本身提供了一系列命令行工具方便用户使用,我们接下来会使用一些命令行来测试。
2022-10-12 11:39:14
4319
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人