自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 C++ 实现A*算法

A* 是一种启发式搜索算法,它在 Dijkstra 算法的基础上引入了估价函数,通过更聪明地选择路径节点,以更快地找到目标路径。在保证最短路径的同时,尽量减少搜索空间。

2025-04-15 15:54:08 1364

原创 排序算法(3) C++

计数排序是一种非比较排序算法,适合于范围较小的整数排序。它通过计数每个元素出现的次数,然后根据计数的结果直接构建已排序的数组。基数排序通过对每一位数进行排序,最终实现整体的有序。首先对个位进行排序,然后对十位进行排序,依此类推,直到最大位数。桶排序将数据分散到多个桶中,然后对每个桶内部的数据进行排序,最后再将桶中的数据合并。适用于均匀分布的数值。堆排序利用堆这种数据结构进行排序。堆是一种完全二叉树,满足堆的性质。计数排序适合用于考试成绩的排序,尤其是成绩范围有限时。

2024-10-30 16:15:02 428

原创 排序算法(2)

快速排序:基于分治的高效排序算法,适合大多数情况,但在极端情况下效率较低。希尔排序:插入排序的改进版本,通过缩小增量提前将远距离元素排序,提升效率。归并排序:稳定的分治排序算法,适合大数据量场景,空间复杂度较高。这三种排序算法各有优缺点,可以根据数据规模、数据特点等需求选择合适的排序算法。例如,归并排序适合数据量较大且要求稳定排序的场景,而快速排序适合一般场景并且需要较高的排序效率。

2024-10-14 13:55:09 880

原创 排序算法(1)

排序算法最佳适用场景不适用场景冒泡排序学习排序概念,处理少量数据大数据量排序,性能要求高的场景选择排序数据量小且不要求稳定性时大数据量排序插入排序小规模或部分有序数据排序,实时数据处理大数据量,完全无序的数据。

2024-09-29 15:59:48 566 2

原创 C++ 基于 Epoll 的多客户端聊天室项目

客户端连接事件:通过来区分,表示有新的客户端连接。客户端消息事件:通过fd!= fd_sock来区分,表示已有客户端发送消息。通过epoll的事件驱动机制,服务器可以同时处理多个客户端的连接和消息收发,并且在大规模并发场景下表现出色。

2024-09-26 16:49:19 936

原创 使用动态规划求解最长公共子序列(LCS)

给定两个字符串 X 和 Y,我们需要找到它们的最长公共子序列。子序列是指从一个序列中删除一些元素(可以不删除)之后剩下的元素保持相对顺序。例如,给定字符串 X = "ABCBDAB" 和 Y = "BDCAB",它们的最长公共子序列是 "BDAB",长度为 4。我们可以使用一个二维数组 dp[i][j] 来存储中间结果,其中 dp[i][j] 表示字符串 X 的前 i 个字符与字符串 Y 的前 j 个字符的最长公共子序列的长度。

2024-09-20 11:29:31 2001

原创 如何将 ONNX 模型转换为 OpenVINO IR 格式(.xml 和 .bin)

onnx->.bin

2024-09-11 17:04:06 1656

原创 使用模板类来实现动态数组Vector()

可以发现:动态数组在扩容时,需要先申请一篇新的大的连续空间 然后将已有的元素复制过去,是一件非常麻烦的事,可以一开始定义容量的时候就稍大一点。vector中还有很多方法,push_back()....接下来,我们将通过一个动态数组类的实现来展示如何利用模板类来处理不同类型的数组。

2024-09-05 17:14:02 174

原创 C++ 模板类来实现一个适用于各种数据类型的栈

模板(Template)是C++语言中一种用来创建泛型类或函数的机制。它允许我们在定义类或函数时不指定具体的数据类型,而是在使用时通过传入具体的类型参数来实例化模板。这种方式极大地提高了代码的可重用性,并简化了代码的维护工作。

2024-09-05 16:30:39 381

原创 动态规划算法:

动态规划(Dynamic Programming, DP)是一种将复杂问题分解为更简单的子问题来求解的算法思想。它通过保存中间子问题的解,避免了重复计算,从而大大提高了解决问题的效率。动态规划通常用于求解最优化问题,比如最短路径、最大收益等。

2024-09-04 10:57:22 596

原创 服务器多线程通信

服务器使用主线程持续监听客户端的连接请求,当成功建立连接后,服务器会为每个客户端启动一个新的线程来处理通信。虽然套接字创建和监听的部分与单线程服务器没有变化,但通过引入结构体和多线程机制,我们增强了服务器的并发处理能力。多线程服务器能够同时启动多个客户端进行连接,每个客户端的请求都能被服务器独立处理并响应,如下图所示。可以清楚地看到,服务器成功处理并回应了来自多个客户端的请求。的作用是将新创建的线程与主线程分离,使主线程能够继续监听其他客户端的连接请求,而不必等待当前线程结束。

2024-09-02 16:23:22 362

原创 C(C++)网络编程(服务器单线程)

网络编程

2024-09-02 16:06:07 2811 2

原创 735. 小行星碰撞 (C++) 贪心算法 弱智版 击败5%的人

找出碰撞后剩下的所有小行星。碰撞规则:两个小行星相互碰撞,较小的小行星会爆炸。如果两颗小行星大小相同,则两颗小行星都会爆炸。两颗移动方向相同的小行星,永远不会发生碰撞。对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相同的速度移动。,表示在同一行的小行星。

2024-08-23 15:33:53 320

原创 贪心算法 leetcode 605

假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。当前位置满足条件,则种植,指针移动两个单位开始判断下一个。当前 位置已经种,则至少在下下一个位置才能重新种。思路:依次从头到尾或者从尾到头遍历给定数组。贪心的寻找下一个能种的位置。当前位置的左边种花了,则至少在下个位置才能种花。当前位置的右边种花了,则至少在连跳三个位置。,能否在不打破种植规则的情况下种入。

2024-08-23 11:29:57 267

原创 Clion中文输出乱码

这块设置为GBK。即可。

2024-08-15 17:53:52 150

原创 1572. c++

逆对角线 满足 i+j=矩阵维度-1;奇数维度的矩阵存在重复使用的中间一个数要进行舍去。请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。对角线的和为:1 + 5 + 9 + 3 + 7 = 25。请注意,元素 mat[1][1] = 5 只会被计算一次。,请你返回矩阵对角线元素的和。

2024-08-15 17:06:33 319

原创 1200. 最小绝对差 C++

由于我们要找的是最小绝对差,可以先将数组排序,这样具有最小差值的数对一定是由相邻元素组成的。:再次遍历数组,将差值等于最小差值的相邻元素收集起来,形成数对列表。请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。:遍历排序后的数组,计算相邻元素的差值,找出最小的差值。

2024-08-12 10:23:05 267 4

原创 1160 拼写单词C++

统计给定的字符串中每一个字符出现的频率次数。接着遍历给定的字符串数组,判断每一个字符串对应字符的数量和给定的字符数量进行对比。可以形成字符串 "hello" 和 "world",所以答案是 5 + 5 = 10。可以形成字符串 "cat" 和 "hat",所以答案是 3 + 3 = 6。中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写(指拼写词汇表中的一个单词)时,给你一份『词汇表』(字符串数组)中的『字母』(字符)拼写出。中的每个字母都只能用一次。中你掌握的所有单词的。

2024-08-12 09:41:28 244

原创 448. 找到所有数组中消失的数字(C++)

思路2: 我们可以初始化一个长度为输入的数组result其初始值全为0,遍历给定数组,将给定数组中的值都加上一个固定的长度 再写入result中正确的对应位置。如 [4,3,2,7,8,2,3,1],第一个数为4,我们获取的下标索引因该是 index=nums[0]-1;思路1:通过两个循环,外层是我们要查看在不在数组的数字,内层是给定的输入数组,对每一个要查看的数组定义一个标识位,然后遍历内层,如果找到了就设置标志位为真,同时将标志位加入到循环的条件判断中减少循环次数。中的数字,并以数组的形式返回结果。

2024-07-26 17:31:12 344

原创 同构字符串(C++)

同样,每个字符也只能接受一个唯一的字符的映射,而不能接受多个字符的映射。如果我们发现有字符试图映射到多个字符,或者有字符试图接受多个字符的映射,那么我们就知道这两个字符串不是同构的,就像有人试图交换多个定情信物或接受多个定情信物一样。在循环执行过程中,对于两个字符串中第一次出现的字符都会跳过if判断 直接添加进入两个map中,只有遇到已经添加过的key时,判断两个key在自己维护的map中所映射的值是不是与当前要比对的值相等,如果不相等,则说明出现了一个key想要映射多个value的情况。

2024-07-26 09:53:58 533

原创 检测大小写(C++)

针对于第一种情况,我们要确定首字母为大写字符的情况下,统计他之后出现的小写字符的个数,如果为0,则说明全为大写。针对于后两种情况,我们只需要统计首字母之后的所有字符是否都为小写,即小写的个数为长度减一。如果大写用法正确,返回。

2024-07-23 09:00:14 495

原创 解决python脚本读取文件时按照文件名ASKLL码进行自动排序。

但是读取的顺序并不是按照415.430....的自然顺序。对于每一个类别Vi进行排序时,按照其ASKLL值 如41005 和4240 依次向后比较每一位的ASKLL值排列,这样读取在图片合成视频的时候会出现跳帧 等现象。

2024-07-18 10:43:37 254

原创 搜索插入位置(C++)

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。很容易联想到二分算法;题目要求必须使用时间复杂度为。请必须使用时间复杂度为。

2024-07-16 09:52:28 193

原创 最长公共前缀(C++)

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。输入不存在公共前缀。

2024-07-15 11:13:28 461

原创 罗马数字转整数(C++)

问题求解:1:使用map获得对应符号和数值之间的对应关系,对特殊的几种情况进行处理。2:使用for+switch循环进行处理。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。因为我是菜鸡,所以用第二个方法:在case中对应'I','X','C'的下一个字符进行特殊处理。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。

2024-07-12 16:25:27 270

原创 如何训练自己的yolo模型(v5)

7.开始检测:找到detect.py修改三个部分,第一行,选择你刚才训练好的权重文件,第二行选择你要检测的数据,可以是图片,视频。第三步,修改为你自己的data下面的ymal文件即可。第二个改为 你第一步修改的data下面的ymal,第三个改为model下面的修改的ymal.即可。4.同理修改model文件夹下面的ymal文件,复制一个 该名称修改部分内容(将nc改为你数据集的时实际类别数。)我的_car.ymal是复制的然后修改里面的nc数目即可。1:下载源项目,用pycharm打开,下载需要的库。

2024-07-11 17:24:43 417

原创 L1-032 Left-pad (20 分)

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n=scanner.nextInt();String x=scanner.next();char s=x.charAt(0);String st=scanner.nextLine();String line2=scanner.nextL.

2022-04-20 22:20:34 366

原创 Java图形界面计算器 Swing

java Swing 逆波兰表达式 计算器

2021-11-20 23:14:42 1130 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除