- 博客(135)
- 收藏
- 关注
原创 算法思想之广度优先搜索(BFS)及示例(亲子游戏)
广度优先搜索这种算法遍历整个图的所有节点并记录,直至找到所需结果为止,是一种盲目算法,但它还有一个非常重要的特性一最佳解,即当所有的边长相等,它就是最佳解,若在距离聚类算法中,应用广度优先搜索此特性去搜寻数据对象的同类,则可以有效地提高聚类速度。此外,可以把网格单元作为点来处理,利用广度优先搜索某网格的直接网格邻居单元邻居和间接网格邻居单元,以类似于树的层次迅速遍历整个网格空间,对符合条件的所有找到的邻居合并,从而将显著网格单元进行连通并聚类。然后根据层次遍历树的访问顺序,来给各支路和节点编号。
2025-06-09 09:10:25
464
14
原创 明基RD280U编程显示器深度测评:码农的「第二块键盘」竟然会发光?
身为一名资深程序员,每天与屏幕为伴的时间常常超过12小时。在代码编写、文档整理与程序调试的忙碌节奏中,屏幕,无疑是我们的“作战阵地”。我尝试过市面上多款显示器,可始终未能找到称心如意的。有些显示器色彩呈现不够清晰,代码显示效果差强人意,看着十分别扭;还有些虽然具备一定的护眼功能,但效果不尽如人意,长时间使用后,眼睛依旧疲惫不堪。就在我几乎要放弃时,明基RD280U闯入了我的视野——一款专为程序员精心打造的显示器。接下来,就让我带大家一同领略这款专为程序员量身定制的编程利器的独特魅力。
2025-05-26 17:30:58
7555
70
原创 Maven 项目中将本地依赖库打包到最终的 JAR 中
在现代后端开发中,构建高效且可扩展的 Web 应用程序通常依赖于多种第三方库和内部依赖。这些依赖可以来自公共仓库,也可能是公司内部自研的库或尚未发布到公共仓库的 JAR 包。本文将详细介绍如何在 Maven 项目中处理本地依赖库,并确保这些依赖能够正确地打包到最终的可执行 JAR 文件中。本文不仅以 Doris 连接器(flink-doris-connector)作为示例,还涵盖了处理其他本地依赖库的通用方法。为什么需要打包本地依赖库?通常,依赖库可以通过 Maven 中央仓库或其他公共仓库轻松获取和管理。
2025-05-12 09:55:36
10850
124
原创 算法思想之深度优先搜索(DFS)、递归以及案例(最多能得到多少克黄金、精准核酸检测、最富裕的小家庭)
例如:A 是确诊病例,A 和 B 有接触、B 和 C 有接触、C 和 D 有接触、D 和 E 有接触,那么 B、C、D、E 都是需要进行核酸检测的人。在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭。在题目中,提到横纵坐标的数位之和不大于k,意味着将横坐标和纵坐标的每个位上的数字相加,得到的和要小于或等于k。例如,对于数字1234,它的各个位上的数字分别是1、2、3和4,那么它的数位之和就等于1+2+3+4=10。
2025-05-06 11:06:26
11645
143
原创 算法思想之三叉搜索树
每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。给你一系列数,请按以上规则,按顺序将数插入树中,构建出一棵三叉搜索树,最后输出树的高度。第一行为一个数 N,表示有 N 个数,1 ≤ N ≤ 10000。第二行为 N 个空格分隔的整数,每个数的范围为[1,10000]输出树的高度(根节点的高度为1)
2025-04-21 09:33:11
10638
138
原创 算法思想之滑动窗口
该技巧通过维护一个固定大小的窗口(通常是一个子数组或子串),在遍历过程中不断调整窗口的位置和大小,以便快速计算出所需的结果。滑动窗口算法通常能够在 O(n) 的时间复杂度内解决这类问题,因此在处理需要考虑连续子序列或子串的情况下,是一种高效的算法选择。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。接下来 n 行,每行若干个空格分隔的字符串,分别表示一名员工的出勤记录。优化点在于,从数学的角度减少计算的次数,n < (n/2+n%2+1)该整数的所有表达式和表达式的个数。
2025-04-14 09:13:05
11014
141
原创 算法思想之双指针
服务之间交换的接口成功率作为服务调用关键质量特性,某个时间段内的接口失败率使用一个数组表示,数组中每个元素都是单位时间内失败率数值,数组中的数值为 0 ~ 100 的整数,给定一个数值(minAverageLost)表示某个时间段内平均失败率容忍值,即平均失败率小于等于 minAverageLost,找出数组中最长时间段,如果未找到则直接返回。接下来的第 2 行到第 N + 1 行(共 N 行),每行为一个正整数,表示第 i 块披萨的大小,其中 1 ≤ i ≤ N。判定 S 是否是 L 的有效子串。
2025-04-07 16:15:07
10914
137
原创 算法思想之单调栈以及示例(转盘寿司、找朋友、火星文计算)
在学校中,N 个小朋友站成一队, 第 i 个小朋友的身高为 height[i],第 i 个小朋友可以看到的右边的第一个比自己身高更高的小朋友 j,那么 j 是 i 的好朋友(j > i)。如果客户选择了第 i 盘寿司,寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j,前提是 prices[j] < prices[i],如果没有满足条件的 j,则不赠送寿司。这道题的解法利用了单调栈的特性,通过维护一个递减的栈,可以快速找到每个小朋友的好朋友位置。输出 N 个小朋友的好朋友的位置。
2025-03-25 14:29:24
11291
133
原创 时间复杂度与空间复杂度计算方法介绍
每次合并的复杂度是 O(n) ,递归深度是 O(log n) ,因此总时间复杂度为 O(n log n)说明:在这个例子中,内层循环的次数随外层循环的次数变化,第一次内层循环执行 n 次,第二次执行 n−1 次,以此类推,总时间复杂度为 O(n(n+1)/2) ,简化后依然为 O(n²)说明:这里声明了一个 n×n 的矩阵,因此空间复杂度为O(n²) ,因为存储该矩阵所需的空间随 n 的平方增长。说明:如果声明了一个长度为 n 的数组,那么空间复杂度是 O(n) ,因为数组的大小随 n 的增加而增加。
2025-01-01 18:15:59
10413
114
原创 docker私有仓库的介绍以及 Docker registry 安装
docker私有仓库的介绍以及 Docker registry 安装
2024-11-25 10:47:54
15273
161
原创 使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
2024-11-18 10:37:21
22176
164
原创 一文了解什么是NLP(自然语言处理)
自然语言处理(NLP)是一种专业分析人类语言的人工智能。接收自然语言,这种语言是通过人类的自然使用演变而来的,我们每天都用它来交流转译自然语言,通常是通过基于概率的算法分析自然语言并输出结果简而言之,这就是一个创建算法的过程。苹果公司的人工智能语音助手 Siri 的工作过程就是自然语言处理在实践中应用的一个鲜活案例。NLP 正在成为我们生活中不可或缺的一部分,其与机器学习、深度学习一起达成的高度远远优于几年前取得的成就。在本文中我们将深入了解NLP是如何应用、如何工作的。
2024-11-01 09:48:03
13740
98
原创 Java 创建图形用户界面(GUI)组件详解之下拉式菜单(JMenu、JMenuItem)、弹出式菜单(JPopupMenu)等
Java 创建图形用户界面(GUI)组件详解之下拉式菜单(JMenu、JMenuItem)、弹出式菜单(JPopupMenu)等
2024-10-21 16:32:05
16881
58
原创 Java 创建图形用户界面(GUI)组件详解之对话框(弹窗)组件 JoptionPane
Java 创建图形用户界面(GUI)组件详解之对话框(弹窗)组件 JoptionPane
2024-10-08 23:19:59
11573
52
原创 Java 创建图形用户界面(GUI)组件详解之复选框:JCheckBox、单选按钮:JRadioButton、边框:Border、下拉列表选项框:JComboBox、滑动条:JSlider
Java 创建图形用户界面(GUI)组件详解之复选框:JCheckBox、单选按钮:JRadioButton、边框:Border、下拉列表选项框:JComboBox、滑动条:JSlider
2024-09-23 10:24:01
13215
175
原创 Java 创建图形用户界面(GUI)组件详解之JFrame、JTextField、JTextArea、JPasswordField、JScrollPane、JLabel
Java 创建图形用户界面(GUI)组件详解之JFrame、JTextField、JTextArea、JPasswordField、JScrollPane、JLabel
2024-09-18 09:29:56
16876
230
原创 Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述
Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述
2024-09-09 14:26:30
18776
237
原创 在编程挫折中砥砺前行
在编程这条既充满挑战又极具魅力的道路上,每一位探索者都不可避免地会遇到那些看似难以逾越的高墙——挫折感。它们如同夜空中最密集的乌云,遮蔽了前行的光芒,让无数初学者在迷茫与挫败中徘徊,甚至选择放弃。然而,正是这些看似不可逾越的障碍,铸就了真正编程高手的坚韧与智慧。今天,我想分享自己在这条路上如何穿越 Bug 的迷宫,如何在复杂的算法前保持冷静,以及那些宝贵的克服挫折的经验,希望能为同样在这条路上奋斗的你点亮一盏明灯。在编程的征途中,我们每个人都是孤独的旅者,但同时也是彼此的灯塔。
2024-08-22 09:35:23
6392
18
原创 使用 nginx 搭建代理服务器(正向代理 https 网站)指南
使用 nginx 搭建代理服务器(正向代理 https 网站)指南
2024-08-14 15:52:18
36564
237
原创 Spring File Storage(文件的对象存储)框架基本使用指南
Spring File Storage(文件的对象存储)框架基本使用指南
2024-08-05 09:29:39
11665
239
原创 JDK 8 升级 17 及 springboot 2.x 升级 3.x 指南
JDK 8 升级 17 及 springboot 2.x 升级 3.x 指南
2024-07-29 14:23:02
15834
206
原创 JavaScript 入门指南(二)JavaScript 的数据类型和 JSON 数据
JavaScript 入门指南(二)JavaScript 的数据类型
2024-03-25 09:17:36
6954
37
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人