自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 matplotlib无法显示中文的问题

rcParams['font.sans-serif'] = ['SimHei'] # 使用SimHei字体。rcParams['axes.unicode_minus'] = False # 正确显示负号。# 设置支持中文的字体。

2025-02-20 20:36:44 142

原创 ubuntu安装cuda、cudnn和TensoRT【分步安装】

当然我这里提供一下,我之前下载好了的,放百度网盘了,需要自取吧【因为这斯有时候要用魔法才能去】这里我觉得主要函数看你的版本能不能对应哈,如果你的cuda也是11.3,那我和一样没毛病,这里大家如果觉得找不到,那就多找几个看看。我的的驱动最高支持11.7的CUDA版本,所有后面我下载cuda不能高于11.7,【我选择下载cuda11.3】】,查看cuda版本【这逼下载的巨慢,建议换源,换源在我上篇文章有写-->第三步,下载cudnn【这个我搞了好久好久,安装包下不下来,惨啊】第四步,下载TensorRT。

2024-11-16 11:20:57 900

原创 ubuntu下载东西很慢怎么办?那咱就换源吧

如果出现下面情况,那就换源再试试,说实话我也看不懂写了个啥,反正就是不正常咱就再换源。② 先用命令ll 查看是否有sources.list。将下面的源insert到sources.list中去。【千万要备份一下,不然要是想反悔那可就遭罪喽】

2024-11-15 22:53:51 309

原创 pytorch深度学习环境安装 + 讲解【新手版】

不知道有没有学深度学习的小伙伴在安装深度学习环境时候很头疼,反正我在研一时候是很头疼很头疼的一件事,根本搞不清楚什么等等等,这些是不是非常的头疼。好,你们的救星来了。我,站在一个大笨蛋的视角来给各位小菜分享,傻瓜式安装环境。前提条件:我有一台电脑,现在只有一个win10/win11系统,有一块GPU。

2024-11-12 13:37:00 1057

原创 求字符串str中,无重复字符的最长子串【笔试题】

④ 最后end - maxLen + 1为滑动窗口的起点,substr(end - maxLen + 1,maxLen)。② 遍历s,如果当前字符c在set中没有,则将c放入set中,并判断滑动窗口的end是否需要移动。③ 如果在set中有,则要移动start到当前字符的下一个为止,而且还要earse集合中的元素。题目:我有一个字符串s,求这个字符串中的一个子字符串,要求这个子串的所有字符不能有重复。这就是一个典型的滑动窗口问题,只要我们找到窗口的。就可以求得子字符串最大长度了。

2024-11-03 15:08:44 184

原创 LeetCode1047.删除字符串中所有相邻重复项

思路:字符串s,遍历每一个字符放进一个stack中,比较当前字符和stack中头部元素是否一样,如果一样,则弹出来,有点儿像回文一样,最后剩下的就是不是对称重复的项了。大家可以想一下,ab进栈,然后b进栈发现栈顶相同,弹;a进栈,发现栈顶相同,弹;⑤ 弹栈sta_tmp,push_back到string s_rst中。③ 将c比较栈顶元素,如果相同,则弹栈;④ 将sta栈的内容返回到另一个栈中sta_tmp。这道题是一道简单题,一遍代码过。① 定义一个sta栈。② 遍历每一个字符c。

2024-11-03 10:57:21 207

原创 LeetCode20.有效的括号匹配

② 得到右括号s[i] ,查看sta.top(),if sta.top() 不等于s[i]所对应的左括号,则直接false。首先定义一个stack<int> std 结构,遍历s字符串,当遇到左括号则进栈,遇到右括号则出栈。① 当变当前字符s[i] 为右括号时候,发现栈是空则,则直接返回false。③ 当s遍历完之后,sta还有元素,直接false。这道题很简单,一个栈结构就能解决。不满足括号匹配有如下几种情况。

2024-11-02 12:20:24 232

原创 LeetCode347.前K个高频元素

那么我直接用一个优先队列来做不就好了吗,优先队列的元素为pair,key为元素,value为该元素的个数,优先队列的排序规则就按照value进行排序就好了。其实说实话,我第一想到就是比较器,从大到小进行排序,这样就是大顶堆来排,但是好像小顶堆的时间复杂度要低一点,因为一个复杂度是nlogn、一个复杂度是nlogk,但是我选择用前者,原因就是因为我笨,想不过来nlogk,有小伙伴能想过来可以用小顶堆。③ 然后遍历m,将其放到priority_queue,并重写比较器【大顶堆,从大到小排序】

2024-11-02 10:48:25 164

原创 LeetCode239.滑动窗口最大值

队头永远是最大的元素【比如在题目中的第一个滑动窗口,3位于中间,并且在第一个滑动窗口和第二个滑动窗口都是最大】,一定要保证队头是最大的。3、当滑动窗口向后移动时候,要push元素,检查队尾元素是否大于当前元素,如果大于,则不进行push,如果小于则一直pop,直到大于当前元素,或队列为空。我不知道在座的网友们是什么学校的哈,可能你们是比较聪明的孩子,能够举一反三的来做算法题,但是我感觉我是个大笨蛋[/捂脸],因为刷算法要是做没刷过的,我要想好久好久,所以一般我面试时候,要是没耍过的就让面试官老师换换题目。

2024-11-01 21:19:15 370

原创 LeetCode150.逆波兰表达式求值

解释:计算机一个位置一个位置的向后扫,扫到运算符 /,则将其前面两个数进行运算,即13 / 5 结果伟2,此时tokens变为["4","2","+"],然后再向后扫,扫到+号,则rst = 4 + 2 = 6。比如一个tokens:["4","13","5","/","+"] ==》 4 + (13 / 5) = 6。

2024-10-31 17:05:48 136

原创 151LeetCode.反转字符串中的单词

2.1 遇到单词怎么办,首先第一步判断slow是否等于0,如果等于0,说明是第一个单词,则不需要加上‘ ’;如果不等于0,说明是中间的单词,那么s[slow ++] = 0,然后while(s[fast]!},在括号外还要-- i,因为一会儿再for中还有一个++ i。2. 记录s[fast]不为' '的时候,如果此时fast不为' ',说明遇到单词了。对于删去多余空格,使用slow和fast指针来做。① 先将每个字符reverse。

2024-10-29 03:50:09 207

原创 C++中手写LRU【shapee面试题】

③ 如果链表满了,删最后一个元素,_list.pop_back(),删_map对应的key,_map.erase(key),插到开头_list.push_front({key,value}),更新map,_map[key] = _list.begin();// 三个函数,getElem(int key),putElem(int key,ElemType value),myPrint()cont。① 先判断有没有key这个元素在链表中,有【更新_list,并将元素到_list开头】// 实际存储数据的链表。

2024-10-27 16:10:00 178

原创 LeetCode142.环形链表II

做法:slow每次走一步,fast每次走两步。相遇点在B点,slow走的距离为x + y【slow一定只走了x + y,不可能在环里转圈】,fast走了x + y + n(y + z),n表示fast转的圈数。那么现在只需要一个指针从head开始一步一步走,另一个指针从B点一步一步走,一定会在A点相遇。所以 x = z + (fast转的n - 1 圈)fast走的距离是slow的两倍。

2024-10-27 09:02:05 190

原创 LeetCode19.删除链表的倒数第N个节点【241008字节一面算法】

这道题的要点就是只要保证slow指针和fast指针中间长度为n即可,即fast - slow = n【这点很重要】,意思就是本来fast需要提前走n + 1步,因为当fast停下来的时候,slow应该指向的事要删节点的前一个节点,所以中间要留出n个空间来。要点3:当n大于链表的长度的时候,那么在while(n-- >=0)的循环还没执行完就会跳出来,那么这种情况要处理一下,当tmpN > -1并且fast == nullptr时候就说明n大于链表长度了,这时候就直接返回头结点就好了。

2024-10-26 22:19:36 259 1

原创 LeetCode24. 两两交换链表中的节点

要点2:退出条件为第一个节点为空并且第二个节点为空则应该退出,单数节点的时候就应该退出。【更新left和right的时候也是如此】

2024-10-26 21:27:12 223

原创 C++设计模式之观察者模式

② 实现具体主题,包括attach(obs*) 增加观察者,dettach(obs*)删除观察者,notify()通知观察者,setStatus(int x)修改状态。总结一下就是,有一个抽象的主题,然后用具体的主题去实现它,具体主题里有一个list来存所有的观察者。④ 实现具体Observer1、Observer2中的方法update(int status);③ 创建抽象Observer观察者。

2024-10-20 22:05:44 234

原创 C++设计模式之工厂模式【三种模式】

抽象工厂的执行流程是这样的,首先对产品分类,有3个小类属于A产品,有2个小类属于B产品,那么这时候就创建3个工厂,因为只有最多的产品有3类,意思就是有几类产品就要有几个工厂,工厂1专门创建第一类产品,工厂2专门创建第2类产品,工厂3专门创建第3类产品。总之工厂里的函数的个数取决于产品的类数【纵向】,工厂的个数取决于某类产品最多的子类【横向】//缺点:工厂的数量会随着产品的增加而急剧上升。//优点:可以根据产品的名字生产出对应的产品。//3、违反了依赖导致原则。//3、遵循了依赖导致原则。

2024-10-20 21:07:26 234

原创 C++单例模式【饿汉式】【用锁来保证资源不会出现double free】

【代码】C++单例模式【饿汉式】【用锁来保证资源不会出现double free】

2024-10-20 18:33:48 104

原创 C++的单例模式【饱汉式】【使用atexit + pthread_once】【线程安全】

注:pthread_once在程序中只会执行一次,并且在执行的时候会调用静态的init_r,这个函数对单例对象进行了初始化,并且注册了atexit的destory函数,保证了单例对象的资源被释放。

2024-10-20 18:26:36 150

原创 C++中的单例模式,并用atexit(destory)注册函数来自动释放堆空间的内存【饱汉式】

为啥会叫饱汉式呢,因为在类编译的时候,将单例对象的指针定义定为nullptr,只有当有需要用到单例对象的时候才会去getInstance去创建单例对象出来。

2024-10-20 17:35:33 141

原创 navicat SSH隧道连接不上Mysql

有小伙伴遇到Navicat中通过SSH能连接远程服务器, 但SSH服务器却连不上数据库的情况吧,我也是一脸懵逼,下面就来解决一下吧。注:这里是远程主机的用户名和密码哈。

2024-10-20 10:03:12 441

原创 C++中使用信号量实现消费者、生产者模型

自己实现一个队列【带大小限制的】【模板实现】

2024-10-17 11:30:54 273

原创 C++使用信号量实现共享内存的互斥访问

使用的流程:① 创建信号量对象 ② 初始化信号量 ③ 调用wait()函数加锁 ④ 调用post()函数解锁。运行流程:调用main函数时候,携带两个参数,param1:数字;第1步:创建/获取共享内存,键值key为0x5005,也可以用其它的值。第2步:把共享内存连接到当前进程的地址空间。自己实现一个信号量操作的类【可以直接使用】第3步:创建二元信号量【互斥信号量】1、创建共享内存的结构体。第4步:初始化二元信号量。一共分为一下几个部分。第5步:访问共享内存。

2024-10-17 11:01:50 310

原创 C/C++中,通过一个目录路径,获取目录下所有子文件路径(不包含子目录)

该代码仅适用于,某一个目录下全是文件的情况。

2024-10-13 17:02:08 138

原创 541. 反转字符串II

实现思路:一个for循环从0开始计数,每次跳跃2k个位置,每一趟循环查看当前位置i + k是否到末尾了,如果没有到,则反转[i ,s.size() - 1]给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。如果剩余字符少于 k 个,则将剩余字符全部反转。输入: s = "abcdefg", k = 2。输出: "bacdfeg"

2024-10-09 20:37:15 172

原创 C++中,左值引用作为函数返回值也可以绑定右值

学过C++的牛马都知道,在C++中,正常情况下左值引用只能绑定左值,右值引用只能绑定右值,const引用既可以绑定左值又可以绑定右值。这是我在实现写时复制的时候的代码,可以看到str2[3] = 'H';能成功赋值,但是str2[3]是一个char&,如果这里还有牛马看不懂的,可以看看我下面这个代码。可以看到 func() = 'M';也是可以运行的,func()返回的是一个引用。

2024-10-07 11:01:44 192

原创 堆排序(C++版)

父节点的索引为i,lchid的索引为2 * i + 1,rchild的索引为2 * i + 2。最后一个含有孩子节点的父节点索引为:(v.size() - 1) / 2。1、建堆(大根堆,升序排;

2024-10-04 21:38:23 181

原创 快速排序(C++版本)

【代码】快速排序(C++版本)

2024-10-04 16:32:21 138

原创 2、C++面试题:可执行程序是如何生成的?

例如,#include指令会告诉预处理器将指定的头文件内容插入到源代码中,而#define指令则用于定义宏,预处理器会在编译前将所有的宏替换为其对应的值。在整个过程中,还需要注意内存管理和优化的问题。例如,在链接阶段,静态链接器会复制被应用程序引用的目标模块,以减少可执行文件在磁盘和内存中的大小。链接器会解析目标文件之间的符号引用,将各个目标文件中的代码和数据组合在一起,形成一个完整的可执行程序。需要注意的是,不同的编程语言和编译器可能会有不同的实现方式和细节,但总体流程是相似的。

2024-10-03 17:14:48 275

原创 1、C++面试题:可执行程序是如何变成进程的?

需要注意的是,不同的操作系统和平台可能会有不同的实现细节和步骤,但总体流程是相似的。此外,进程创建后,它会在操作系统的控制下与其他进程并发执行,共享系统资源,并通过进程间通信(IPC)机制进行交互。在这个过程中,操作系统扮演着关键的角色,它负责程序的加载、资源的分配、进程的管理和调度等任务。:操作系统为每个进程创建一个进程控制块(PCB),用于存储与进程相关的信息,如进程ID、状态、寄存器信息、内存指针等。:在进程开始执行之前,操作系统会设置进程的上下文,包括程序计数器、栈指针等寄存器的值。

2024-10-03 15:42:59 246

原创 关于conda创建虚拟环境,解决conda config --set report_errors true问题

首先进入base环境,比如我要创建一个新的环境conda create -n pointCloudCLS python=3.8。然后再conda create -n pointCloudCLS python=3.8就成功了。win+cmd,输入%HOMEPATH%,然后搜索.condarc点进去,删掉① - defaults,② 将所有的https改为http。当我们要用conda创建一个虚拟环境时。

2023-11-20 17:06:30 5006 5

原创 ONNX: starting export with onnx 1.14.0...ONNX: export failure: Exporting the operator silu to ONNX

新建一个.py文件,然后import torch.nn.modules.activation,按住Ctrl+鼠标左键,进入activation.py文件中,修改393行左右的代码,

2023-07-12 10:29:40 524 1

原创 thymeleaf模板技术在html页面中没有提示或者不认识th:if=““的解决办法?

thymeleaf模板技术在html页面中没有提示或者不认识th:if=""的解决办法?

2022-09-06 11:04:55 616

原创 NoClassDefFoundError: Could not initialize class com.atguigu.uitls.XXX错误

NoClassDefFoundError异常

2022-09-06 08:25:56 234

原创 在Numpy数组如何将二维转为一维,一维转为二维

numpy数组一维和二维之间的转换

2022-09-05 12:04:33 1542 1

空空如也

空空如也

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

TA关注的人

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