自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 win11的聚焦图片如何获取(亲测有效)

但是一切一切肯定是有迹可循的!既然现在临时用了这个壁纸,那么电脑上肯定有相应的缓存。将它转变为我们正常的图片格式。只需要改一个后缀名即可。只要图片正常显示了,说明成功了。从这点进去就是一个网页,无法得到桌面背景的图片。win11的聚焦图片是直接来源于网络。会发现里面有两个文件。就是代码转换来的壁纸。

2024-07-16 09:32:20 203

原创 Win11如何删除多余的打开方式选项

计算机\HKEY_USERS\S-1-5-21-4024916612-1691460616-483768494-1001\Software\Classes\Applications。最近在电脑上发现之前安装的流氓软件 迅读pdf大师,卸载了之后右键打开方式还是有,于是想到研究一下windows的打开方式列表。Win+R—>regedit打开注册表。即可选择需要删除的打开方式。

2024-06-26 09:25:12 329

原创 LeetCode35.搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。

2024-06-23 09:24:15 349

原创 LeetCode665.非递减数列

请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的。

2024-06-23 09:22:10 469

原创 C++构造函数和析构函数的顺序问题

因为对象一般都是定义在栈区的而栈帧和栈里面的对象都要符合后进先出的性质也就是后定义的先销毁。

2024-06-21 16:13:27 368

原创 LeetCode118.杨辉三角 | LeetCode119.杨辉三角Ⅱ

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。每一次从当前行j位置开始,从后向前走(否则前面的会被覆盖)在「杨辉三角」中,每个数是它左上方和右上方的数的和。,返回「杨辉三角」的第。就从下标从1的行开始迭代。j位置+=j-1位置的值。求下标为index的行。

2024-06-21 16:08:31 508

原创 LeetCode23.合并k个有序链表

对于这样一个例子,我们遍历lists,每次要找到所有升序链表中,要比较每一个升序头节点val,找到最小的那个尾插到结果链表(ans)因为priority_queue的第三个参数需要传递一个仿函数,对于。每一个lists[i]都为空,即所有的升序链表都找了一遍了,就结束。— > 采用优先级队列(priority_queue)请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。也就是我们创建一个小堆,以val的大小来排序。

2024-06-20 15:22:20 374

原创 认识操作系统 | 理解管理 | 系统调用(System Call)

每个计算机系统都包含一个基本的程序集合,称之为操作系统(Operator System)本质来说,操作系统也是一个软件(程序集合不就是软件嘛),只不过这个软件比较特殊我们平时所说的操作系统,就比如我们每天都在用的Windows包括什么呢?内核部分,包括进程管理,内存管理,文件管理,驱动管理其他程序(函数库,shell程序等)

2024-06-20 14:50:49 830

原创 LeetCode322.零钱兑换(一)

dp[i]表示达到金额 i 所需要的最最少硬币枚数每个状态所能加的钱数 只能是。

2024-06-19 11:39:29 537

原创 字符串的最小编辑距离(动态规划经典题目)

编辑距离的算法是首先由俄国科学家 Levenshtein 提出的,故又叫 Levenshtein Distance。Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。dp数组的开辟:str1.size() +1 行, str2.size() +1 列。把这个操作所需要的次数定义为两个字符串的距离。数据范围:给定的字符串长度满足 1

2024-06-19 11:37:14 319

原创 C++实现简单日历(win11日历)

我们规定 公元1年1月1日是周一所以我们只需要计算从1年1月1日到这一天一共有几天比如 1年1月1日到1年1月6日一共有6天那么 1年1月6日 就是周6 (6%7)而计算从1年1月1日到上个月的最后一天 有几天这一年之前有多少个年 (也就是前面有几个365天)然后 计算从1年到去年 有几个闰年 有几个闰年就+几(闰年366天)然后计算从今年第的一天到上一个月有多少天//判断闰年函数//计算某一个月有有几天//计算从1年1月1日到上个月的最后一天有多少天。

2024-06-18 00:16:57 348

原创 【链表经典面试题】LeetCode138.复制带随机指针的链表(链表深拷贝)

解读: 题目意思就是 给你一个链表 这个链表中除了有next指针之外 还有一个指向这个链表的随机位置的一个指针,让你复制这一个链表。那么你拷贝之后的链表也是 7->13->11->10->1 并且13指向拷贝之后的链表中的7。原链表是7->13->11>10->1 ,其中13的random指向的是原链表中的7。而你复制之后的这个链表中的每一个节点的随机指针,也应该像原链表一样指向对应的节点。每一个拷贝的节点都直接链接在原节点的后面,形成一个大链表(考察链表节点的插入)(怕就怕他有不止一个相同的值)

2024-06-18 00:14:22 927

原创 LeetCode43.字符串相乘【大整数相乘】

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。该算法是通过两数相乘时,乘数某位与被乘数某位相乘,与产生结果的位置的规律来完成。外层:N , 内层:遍历num1:M,字符串相加(最大为M+N):不能使用任何内置的 BigInteger 库或直接将输入转换为整数。那么他们的结果的位数不会超过M+N(一位数*两位数结果最大也就3位数。M为num1的长度,N为num2的长度。的结果一定是两位数并且小于等于81,

2024-06-16 22:20:35 568

原创 LeetCode20.有效的括号

我们刚上来的思路可能是:找出这三种括号的个数如果都是偶数 说明匹配但是这里还有一个顺序问题 比如 " )( "这样是不匹配的!所以这种思路不可取!我们想 如果遇到左括号,把他读到一个顺序表中,然后遇到匹配的右括号就把他放出来,也就相当于对对碰比如 "" 我们会把{ [ (读到一个顺序表里然后依次让( )[ ]{ }对对碰消掉,如果最后顺序表中没有元素是不是说明就匹配呢?这里我们就考虑使用 栈!因为栈只有压栈和出栈,十分符合这道题。

2024-06-15 09:26:54 247

原创 链表经典题目:环形链表问题(LeetCode141.环形链表、LeetCode142.环形链表Ⅱ)

🌟🌟🌟环形链表问题在面试中是经常爱考的,你有没有发现环形链表的题目代码都没有很难,一般是思路难以想到,所以人家考你的是思路,并不真的会纠你代码写的怎么样!快指针必须一次走2步吗?可以一次走3步,走4步可以吗?你会怎么回答?怎么证明快指针一次走2步一定可以追上?这里我们简单证明一下:➡️快指针一次走2步那么一定可以追得上首先需要知道,fast什么时候开始追击slow因为fast首先进入环,在slow进环之前,二者的运动路径并不一样!只有当slow也开始进环,才开始所谓的追及问题。

2024-06-15 09:23:13 1181

原创 LeetCode303.区域和检索-数组不可变

计算[1,3]的元素和 就是计算[0,3]元素和 减去 [0,0]元素和。计算[2,5]元素和 就是计算[0,5]元素和 减去 [0,1]元素和。之所以创建一个 比元素组nums大1的空间,是因为 left >= 1。其实就是让你计算一个数组从left到right之间的元素和。创建一个数组,每个位置 i 存放了 [0,i-1]的元素和。(包含 left 和 right)之间的。需要计算[0,left-1]的元素和。(left的前提是>= 1)但是 题目要求设计一个类。所以这一题就是一个经典的。

2024-06-14 23:04:02 340

原创 LeetCode150.逆波兰表达式

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。这个题如果我们不了解后缀表达式是怎么运算的,是没办法做的。这就需要通过所给示例来推导 后缀表达式的运算方法。返回一个表示表达式值的整数。首先需要明确两个表达式的转换。并把它和栈的性质结合起来。

2024-06-14 23:00:23 348

原创 一篇文章学会进程替换

exec* 系列函数: 功能实际上就是加载器的底层接口,用这样的接口实际上就可以把任何程序加载进来。一定和应用场景有关,我们有时候,必须让子进程来执行新的程序!!

2024-04-09 16:02:05 2358

原创 shell命令行中脚本特殊注释指定脚本解释器

是一个特殊的注释,通常称为"shebang" 或 “hashbang”。用于指定脚本的解释器。,后面跟着解释器的路径,你告诉系统应该使用哪个解释器来执行脚本。通过在脚本的第一行使用。在Linux系统中,

2024-04-09 15:55:50 251

原创 关于exec系列函数中的argv以及命令行参数的指针类型为什么是char* const,而不是const char*、const char* const和char*

在真正的exec函数执行之前可以根据需求,更改传递的参数来适应不同的需求。显然ls没有 hello这个选项,因此,为了防止这种错误也为了安全性。那么这种情况下,程序执行就变成了: ls hello -l。,就不能在函数调用期间修改字符串内容了!

2024-04-08 21:29:54 197 1

原创 解决obsidian中图片链接复制到CSDN或者typora后无法识别

这样设置后,每次写完笔记,只需要鼠标右键,选择Regex Pipeline:你起的名字执行一下,自动就把图片的格式更改了即使用typora打开或是复制到csdn都没有问题了!

2024-04-07 18:22:41 894 1

原创 【Linux篇】makefile一次形成两个可执行

当makefile从上到下被扫描时,要生成的目标文件第一个遇到的就是all,然后他就知道了这个all依赖的是exec和mycmd,然后就分别推导式地执行下面的两个执行生成mycmd和exec。然后all的依赖条件具备了,想执行all的依赖方法,但是由于是伪目标不需要依赖方法,所以makefile至此就结束。首先要知道,正常的makefile文件,在执行的时候,遇到第一个目标文件,就只生成这一个。上面的makefile只会生成exec,因为第一次遇到的目标文件是exec。的时候,直接删除那两个可执行即可。

2024-04-05 16:50:11 500 1

原创 【Linux篇】认识冯诺依曼体系结构

还记得我们说内存是连续的,一般来说,加载某些数据的时候,其周围的数据也会被加载进来。因此,操作系统的作用就发挥了,操作系统会把可能用到的数据提前加载到内存中,这样CPU就直接可以去内存中找数据啦。小红的网卡作为输入设备,接收到消息,然后将消息加载到内存,CPU去内存读取数据,把消息解包,得到消息里的内容,重新写回内存。当小明给小红在输入框中输入消息之后,就已经被写入了内存,然后当小明点击发送的时候,CPU读取内存中的数据,对消息进行打包(如指定发送到哪里),然后输出到网卡。如果要运行必须要加载到内存,

2024-04-05 09:19:39 1759 2

原创 【入门C++编程的艺术】重载cin和cout

cout和cin是作为运算符重载的第一个参数的,所以如果把运算符重载定义在类的内部,是不可以的因为在类里面默认第一个参数是隐藏的this,我们无法更改。写在类的外部又必须涉及到访问类的成员,成员一般是私有的,所以需要把重载的cout和cin声明为。虽然理论上我们可以写在ostream类的内部和istream类的内部。但是,这两个类是标准库中的类,我们无法访问。,需要返回值,返回值为cout 和 cin。cin需要修改成员,第二个参数为 对象的引用。cout和cin经常调用,我们设置为内联。

2024-04-02 15:33:09 329 1

原创 【入门C++编程的艺术】构造函数和析构函数的优化问题

Linux现在g++整体是偏激进优化的和vs下release下一样都是优化到5次,中间冗余对象也优化了 debug下也是。因为Linux下 默认是64位+release环境,拷贝构造5次。上面的第一个题(左):1次构造,4次拷贝构造。g++下面可以看到完全关闭优化的本来次数。第二个题(右):1次构造,7次拷贝构造。先利用int类型构造一个临时对象。然后再用临时对象拷贝构造出w2。编译器优化为: 直接构造出w2。❤️码字不易,给个赞吧~❤️。然后再拷贝构造一个形参对象。本来会先构造一个匿名对象。

2024-03-10 10:45:01 555 1

原创 【Linux篇】gdb的使用

显示mytest的源代码,后面直接回车即可(因为gdb会记住最近的一条命令,如果命令无变化,可以直接回车),每次显示十行。注意:until是函数内跳转,不会调到函数外部,如果该函数在main函数中的位置是第18行,那么你输入的行数超过18行,他还是会停在18行。如果此时进入了一个函数,但是不想继续一步一步走了,想直接运行完这个函数,就用finish。(没有找到调试信息)在循环中,我们时常要查看循环变量的值是多少,可以用长显示让循环变量一直显示着。并且跳到下一个断点的时候,两个断点中间的代码是被执行了的。

2024-03-07 22:03:50 708

原创 【Linux篇】Linux下利用git同步到gitee

举个例子,A和B同时克隆了一个Gitee远程仓库,A提交并推送了一个文件testA.c,此时B也在写代码。有时候我们不需要提交某些后缀的文件到我们的远程仓库,比如在Visual Stdio中除了我们自己建的。文件把以这些为后缀的文件加入"黑名单",这样提交的时候,git就会自动忽略"黑名单"里的文件。出现的原因是建立仓库的时候信息不完善,让你完善一下自己的信息,方便git来追溯。这是因为,B的本地仓库已经和远程仓库不同步了,就会发生提交冲突 问题。把本地仓库中的内容,推送到云仓库。

2024-03-07 07:58:01 1057

原创 【Linux篇】Linux下的第一个小程序--进度条 & 蹦迪炫彩进图条

C语言给我们提供了输出缓冲区,输出的内容先流入缓冲区中,而缓冲区按照一定的刷新策略来刷新,刷新后才会显示到 屏幕。而其实在语言中的’\n’是被当作回车+换行的,所以在语言中有’\n’就自动来到下一行的最开始了。其实,printf是输出到stdout(标准输出流)的,对应的就是显示器。:‘\n’和’\r’只有到了显示器才会有效果,在缓冲区只是个字符。程序的运行结果:先等待三秒,然后输出hello,world!所以,当前行输入之后,来到下一行的最开始其实是:回车+换行。但是如果把’\n’换成’\r’,如下图。

2024-03-06 07:42:34 1148 1

原创 【Linux篇】Linux项目自动化构建工具-make/Makefile

在实际工作中,一个项目可能有很多源文件,比如有200个源文件,那么用gcc/g++编译的时候,我们应该先编译哪一个呢?而且,这么多源文件需要我们一个个去gcc来编译吗?而makefifile就定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作makefifile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

2024-02-17 12:35:30 2131 1

原创 【Linux篇】yum

并且Linux起源于国外,所以该软件发布平台也是国外的平台,我们国家是有墙的,无法直接访问外网,所以如果要直接去软件发布平台下载,有时候就会打不开链接或者下载很慢等问题。这里解释一下软件发布平台,众所周知,Linux是开源精神的先驱,因此很多Linux上的软件也是开源的,所以软件发布平台中大部分都是一些开源精神爱好者所维护的。上面所说的手机app的下载模式模式同样适用于Linux系统中的下载软件的方式,而手机的App Store就相当于Linux中的yum。那么此时下载的如何进行下载的?

2024-02-06 15:32:41 816 1

原创 【Linux篇】gcc和g++的使用

gcc是一个专门用来编译链接C语言的编译器g++则是编译链接C++,也可以编译链接C语言注意:gcc不能编译C++

2024-02-04 12:00:25 835 1

原创 【Linux篇】(一文搞定Linux权限)Shell外壳程序 | Linux权限 | 粘滞位 | umask

当然,正常情况下不同的用户有各自的工作目录,一个用户的工作目录只有自己有读、写、执行权限,所属组以及other都是没有任何权限的。既然umask中出现的权限,都不应该出现在最终权限中,这就意味着umask与起始权限经过某种运算之后,保留起始权限中没有在umask中出现的权限。如果umask中某个位置是1,也就是umask中有这个权限,那么取反后就是0,与起始权限做与运算就可以去掉这个在umask中出现的权限。​ 即:首先判定你是谁,如果你是拥有者,那么只看拥有者权限,和你是否是所属组没关系。

2024-01-29 13:38:57 873

原创 【Linux篇】vim的基本使用 | vim配置

通常使用的如VS2019等工具,具有以下特点可以写C、C++、python、网页等多种语言集编辑、调试、编译、链接等功能于一体类似的这种工具叫做IDE:集成开发环境相比之下,vim的功能就简单得多vim是一款纯编辑器:只负责写代码。

2024-01-27 12:04:27 1126 1

原创 【Linux篇】Linux基本指令

Linux下一切皆文件,管道是一个内存级别的文件(作用类似于一个临时文件),用于传导资源(主要是数据),管道有入口,有出口。数据经过管道传输出去。

2024-01-26 15:36:54 1085 1

原创 【入门C++编程的艺术】C++内存管理 | new和delete | operator new | operator delete | 定位new

new和delete针对内置类型与C的malloc/free无大区别但是对于自定义类型,区别很大!这也是引入new/delete的原因new/delete针对自定义类型,与malloc/free最大的区别就是new的时候会自动调用 默认构造函数(如果无默认构造会报错)delete的时候会自动调用析构函数单个自定义类型对象的构造/析构//malloc只是申请空间exit(-1);//1. new申请空间 2. 调用默认构造函数初始化// 显示传递参数来构造free(p1);

2024-01-25 14:42:18 867

原创 【入门C++编程的艺术】类和对象 | 类的六个默认成员函数 | 初始化列表 | 友元 | explicit关键字 | static成员

初始化列表是在函数体的前面,以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式C++规定,在初始化列表的时候对成员变量进行初始化内置类型:如果不给显示初始化,默认是随机值(不做处理)自定义类型:如果不给显示初始化,调用自定义类型的默认构造函数如果给了显示初始化,那么就按照显式初始化的值所以由该规定可知,上面的代码会出错!因为Time没有默认成员函数,会出现找不到默认成员函数的错误:_t() //此处自动调用_t类型的默认构造函数。

2024-01-24 11:43:10 1114

原创 【入门C++编程的艺术】类和对象的引入(类和对象基础知识)

C++中虽然对struct进行了升级,struct变成了类,但是C++中并不怎么使用它,相比struct,class更贴合"类"这个名称。所以C++中更为官方的类 用 class定义// 类体:由成员函数和成员变量组成//注意一定要有分号!class : 定义类的关键字className:类的名字{ } 内部为类的主体 ,包括成员变量和成员方法类定义了一个新的作用域,在{}内部就是类的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用作用域操作符指明成员属于哪个类域//全局变量。

2024-01-23 11:07:14 897

原创 【入门C++编程的艺术】C++基础(下)

以**inline修饰的函数叫做内联函数,编译时C++编译器会在**调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。

2024-01-22 14:52:36 858

原创 【入门C++编程的艺术】C++基础(上)

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。简单来说 ,就是 可以有多个相同函数名的函数, 但是这些函数的参数个数 或者参数类型 或者参数的类型顺序是不一样的.通常来处理类似的功能,但是数据个数或者类型不同的情况如:计算器就是一个例子 ,加法可以是任何个数任何类型的数的加法但是都只按一个 " + "号就可以完成如以下示例: 不同类型的加法//下面两个 不同类型的参数的顺序不同return 0;注意。

2024-01-21 22:39:37 878 1

空空如也

空空如也

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

TA关注的人

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