自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode算法题笔记(3)

因此,借鉴这一点,可以利用贪心思想,遍历字符串,每次尽可能得到最小的数,直至到末尾。有种可能情况:遍历完字符串后,单调栈已经是升序,但是k还不为0,依然需要删除数字,那么此时直接从最低位开始删即可,因为删除一位数字的总位数将会固定,而最低位数字最大,且能保证前面的数字依旧是排列最小的数,例如12345,删除5后,结果为1234。两个逆指针分别指向数值(非0)序列的尾部,加上一个cur指针,依次从两个数组尾部选出最大的一个数放在nums1的最后面,之后cur指针前移,对应的逆指针也前移。

2024-05-22 21:36:26 1187

原创 Leetcode算法题笔记(2)

目录图论51. 岛屿数量解法一52. 腐烂的橘子解法一53. 课程表解法一54. 实现 Trie (前缀树)解法一回溯55. 全排列解法一56. 子集解法一解法二57. 电话号码的字母组合解法一58. 组合总和解法一解法二59. 括号生成解法一解法二60. 单词搜索解法一61. 分割回文串解法一62. N皇后解法一二分查找63. 搜索插入位置解法一64. 搜索二维矩阵解法一65. 在排序数组中查找元素的第一个和最后一个位置解法一66. 搜索旋转排序数组解法一67. 寻找旋转排序数组中的最小值解法一68.

2024-03-25 14:57:11 815

原创 Leetcode算法题笔记(1)

目录哈希1. 两数之和1.1 解法11.1 解法22. 字母异位词分组2.1 解法12.2 解法23. 最长连续序列3.1 解法小结双指针4. 移动零4.1 解法14.2 解法25. 盛最多水的容器5.1 解法一5.2 解法二6. 三数之和6.1 解法16.2 解法27. 接雨水7.1 解法1小结滑动窗口8. 无重复字符的最长子串8.1 解法19. 找到字符串中所有字母异位词9.1 解法一9.2 解法二子串10 和为k的子数组解法1解法211. 滑动窗口最大值解法一解法二12. 最小覆盖子串解法1数组13

2023-12-07 23:29:41 1555 1

原创 C++ 11 新特性

当final关键字用于修饰虚函数时,声明该类已经是整个继承体系中最后一个能重写该虚函数的派生类了,后续继承该类的派生类中不允许在重写该虚函数了。

2023-11-13 22:20:22 787

原创 Libevent网络库原理及使用方法

Libevent是以个基于C语言编写的轻量级的开源高性能网络库,被广泛使用。Libevent本质上是对已有的系统I/O多路复用技术进行了特殊封装,并统一接口实现I/O,定时器和信号事件Reactor模式,事件驱动,轻量级,性能高;支持I/O多路复用技术,例如select,poll,epoll、kqueue等;跨平台,支持Windows,Linux,BSD 和 Mac Os;支持I/O,定时器和信号等事件,并将它们统一于库内。

2023-11-01 18:24:23 654

原创 Makefile——Linux下C/C++编译方法

静态库可以在编译c项目时,将引用的库一起链接到可执行文件中,可执行文件在运行时不再需要库的支持,但可执行文件会变大。fPIC: (Position-Independent Code), 产生的没有绝对地址,全部使用相对地址,代码可以被加载到内存的任意位置,且可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。动态库在程序编译时不会链接到目标代码中,而是在程序运行时才被调用,可执行文件比静态链接的可执行文件要小。编译C++的流程与编译C几乎一致,只不过用的时g++命令。

2023-10-16 11:12:18 2280

原创 C++ STL之容器(使用方法)

容器就是数据结构,用来将数据元素按照一定的规则进行排列,不同的容器拥有不同的排列规则,不同的排列规则可以达到不同的数据操作特点。容器只需要提供迭代器 算法只需要拿到迭代器就可以完成容器和算法之间的关联和操作顺序容器:数组(array),动态数组(vector),双向队列(deque),双向链表(list),单向链表(forward_list),字符串(string)

2023-10-14 11:38:52 318

原创 C++ STL体系结构

下例分配器为G2.9版本的alloc(目前的__pool_alloc采用16个链表管理内存,每个链表管理同样大小的内存块,0号链表每块内存为8字节,1号链表每块内存为16字节,依次以8的倍数增长。当程序需要用到某一个大小的内存块时,首先看链表中是否有该大小的内存块链表,如果没有则一次性malloc申请一大块,只有一个cookie信息,然后切割为若干个该大小的小内存块,用单向链表连接。因此,malloc每次分得的内存大小总是大于表面上申请的内存大小(申请的内存大小+该块内存的cookie信息)。

2023-10-09 22:14:28 204

原创 More Effective C++学习笔记(6)

学习并实践新的C++语言特性、模板特性、异常处理机制、转型、内存分配、标准模板库STL等等。

2023-09-09 17:00:01 221

原创 More Effective C++学习笔记(5)

此外,新建一个没有数据成员的间接类B,其构造函数用于调用类A中在map中新增处理函数的静态成员函数,添加新的派生类型时可以在全局构造该间接类,保证在运用不同类型处理函数之前已经在map中加入了对应的处理函数。例如,如何让同一个函数collision(),在接收(SpaceShipe对象,SpaceStation对象)时与接收(SpaceShipe对象,Asteroid对象)行为不同。(3)方法3:直接声明一个类静态成员变量对已构造的对象计数,构造一个对象就+1,析构一个对象就-1,如果无资源就抛出异常。

2023-09-09 00:10:21 323

原创 More Effective C++学习笔记(4)

类的相关信息存储在类型为type_info的对象里,能通过使用typeid操作符访问一个类的type_info对象。RTTI耗费的空间是在每个类的vtbl中的占用的额外单元再加上存储type_info对象的空间。这个方法是使用局部缓存,用开销相对不大的内存中查询来替代开销较大的数据库查询。:每个声明了虚函数的对象都带有它,它是一个看不见的数据成员,指向对应类的virtual table。,不过虚基类也会增加一定的成本,类对象中可能有多个虚指针(隐藏指针)。,相当于告诉编译器“我知道我在干啥,没事儿!

2023-08-24 16:56:17 370

原创 More Effective C++学习笔记(3)

当通过传值(by-value)方式捕获时,异常对象被拷贝了两次(第一次是异常传递时生成的一个临时对象,第二次是临时对象给catch的形参赋值)。,因为异常里面参数传递都是副本,传引用也不是为引用异常抛出前的原始对象,而是相较于by-value减少一次副本拷贝。,因为函数参数要求传入引用说明想修改引用的变量,结果变量是临时对象,即使修改了也是做无用功,所以编译器不允许;,因为异常catch匹配是顺序匹配(最先匹配的catch),不是最佳匹配。(2)对象做为异常被抛出与做为参数传递给函数相比,

2023-08-22 17:17:01 173

原创 More Effective C++学习笔记(2)

【代码】More Effective C++学习笔记(2)

2023-08-18 17:09:51 348

原创 More Effective C++学习笔记(1)

【代码】More Effective C++学习笔记(1)

2023-08-17 18:11:19 274

原创 Effective C++学习笔记(8)

operator new应该内含一个无穷循环,并在其中尝试分配内存,如果它无法满足内存需求,就该调用new-handler。当new一个对象时,第一步调用分配内存的operator new,第二步调用对象类的构造函数。如果第一步调用成功,但在第二步抛出异常,步骤一中的内存分配必须取消并恢复旧观,否则就会造成内存泄漏。万一class专属的operator new将大小有误的分配行为转交给标准::operator new执行,你也必须将大小有误的删除行为转交::operator delete 执行。

2023-08-16 23:19:10 382

原创 Effective C++学习笔记(7)

模板中,根据实参推导模板参数类型时不支持隐式类型转换推导。如果一个模板类中,模板内的函数需要参数类型转换,成员函数无法做到。函数参数隐式类型转换之前需要确定该函数存在,而实例化之前成员函数并不存在。可在模板类内中采用friend函数声明和定义,使其声明跟随模板类一起实例化,之后再调用的时候就可以自动找到该函数的声明,进行隐式类型转换(下图中可在*重载中输入int类型数据,使其隐式调用Rational的int类型构造函数,隐式转换为Rational<int>)。

2023-08-16 16:59:52 197

原创 Git与Github常用方法

如果是MIT这种,就代表你只要保留了原作者的一些版权信息在源代码里,基本上就可以无限制使用,也不用付费。提交更改(pull request)看到别人仓库的东西,想提出修改意见,可点击“pull request”,上传自己修改过的代码和描述。Git是一款分布式源代码管理工具(版本控制工具) ,可以用来合作开发项目,不同阶段提交代码的回溯等等,经常与Github搭配使用。提交疑问(Issues):基于查看过代码仓库的前提提交问题和提交说明,仓库创建者有权利关闭问题并和网友评论问题以及添加标签。

2023-08-09 17:00:47 2407 1

原创 Effective C++学习笔记(6)

原因:当一个指向子类对象的指针调用被重写的non-virtual函数时,调用父类还是子类的non-virtual函数并不取决于对象是子类对象还是父类对象,而是取决于最初指针声明的类型。此外,我们也应当遵守适用于基类对象的每一件事,也适用于继承类对象;基类的派生类一定会继承non-virtual的接口和实现。原因:缺省参数值都是静态绑定,而virtual函数是动态绑定。静态类型:被声明时采用的初始类型;动态类型:目前所指对象的类型。虚函数调用哪一个取决于动态类型是哪一个对象。

2023-07-18 16:04:26 677

原创 Effective C++学习笔记(5)

Effective C++第五章

2023-04-05 11:47:29 466 1

原创 Effective C++学习笔记(4)

Effective C++第四章

2023-03-29 12:12:51 470

原创 Effective C++学习笔记(3)

Effective C++第三章

2023-03-23 22:38:40 329

原创 Effective C++学习笔记(2)

Effective C++第二章笔记

2023-03-22 23:51:47 183

原创 Effective C++学习笔记(1)

Effective C++第一章学习笔记

2023-03-21 00:37:50 111

原创 ubuntu使用ssh进行局域网和非局域网远程连接

ubuntu使用ssh进行局域网和非局域网远程连接

2022-08-13 14:01:16 12220 28

原创 Ubuntu20.04下OpenCV 4.5环境配置与代码g++、Cmake编译方法

在Ubuntu20.04下OpenCV 4.5环境配置与代码g++、Cmake编译方法

2022-08-10 00:39:02 1822

原创 MATLAB画柱状图(包括普通柱状图,多组柱状图,三维柱状图)

1.普通柱状图代码:clc;clear;%确定图片的位置和大小,[x y width height]figure('visible','on','position',[350,200,800,550]); %准备数据X = [70,75,80,85,90];%每个柱子的颜色设置color = [200,65,68;200,132,174;249,199,179;100,190,190;10,250,139]/255; hold on% 添加5个柱子,facecolor用来修改颜色

2022-04-19 13:07:10 81697 6

原创 云服务器部署前后端分离项目(若依)详细教程

在Linux云服务器上部署若依前后端分离项目详细流程

2022-04-17 00:57:21 15448 7

原创 Linux服务器安装NodeJs简易方法

一开始尝试用g++编译nodejs源码来安装nodejs,但是在编译过程中非常容易出现各种各样的编译错误问题,无法解决,功亏一篑。在踩了坑后,找到了一种基本上百分百成功的安装步骤。1.连接自己的云服务器可以通过Xshell来连接自己的服务器。打开Xshell,创建一个会话,自己选择一个容易辨识的名称(图中”hhh“),主机填自己的服务器ip,其他不变。之后按照弹出的对话框依次输入用户名(一般是root),以及密码。或者直接在创建的会话框中输入:ssh 用户名@服务器ipssh root@121.

2022-04-09 02:03:31 8725 1

原创 Matlab中特征选择reliefF算法使用方法(分类与回归)

Matlab中特征选择reliefF算法使用方法(分类与回归)

2021-12-27 22:07:21 12543 12

原创 Matlab中特征降维主成分分析(PCA)使用方法(整套流程)

PCA(Principal Component Analysis)主成分分析方法是一种常见的数据降维方法。数据维度过高可能会使得模型效果不佳。PCA主要原理是将高维原数据通过一个转换矩阵,映射到另一组低维坐标系下,从而实现数据降维。...

2021-12-24 13:37:21 21857 14

原创 Matlab中newff函数使用方法和搭建BP神经网络的方法

Matlab中newff函数使用方法和搭建BP神经网络的方法

2021-12-21 17:22:11 40188 12

原创 MATLAB中libsvm的svmtrain和svmpredict函数的使用方法与参数设置

MATLAB中libsvm的svmtrain和svmpredict函数的使用方法与参数设置

2021-12-15 16:46:22 20658 2

原创 Matlab中数据拟合函数lsqcurvefit的使用方法与常见问题

Matlab中数据拟合函数lsqcurvefit的使用方法与常见问题

2021-12-13 21:27:55 37408 2

原创 机器学习(三):支持向量机SVM(含代码和注释)

目录1. 线性可分2. 支持向量机SVM1. 线性可分二维空间中,线性可分数据表示为可用一条直线分开两类数据;若不存在一条直线分开两类数据,则为非线性可分可以把它拓展到更高维度空间。若在三维空间中有一个二维平面能分开两类数据,则为线性可分;否则线性不可分。若在N维空间中有一个N-1维平面能分开两类数据,则为线性可分;否则线性不可分。以二维空间为例,若一条直线w1x1 + w2x2 + b = 0能分开两类数据,则可定义( w1x1 + w2x2 + b < 0) 和 ( w1x1 + w

2021-10-18 19:57:20 2153 2

原创 机器学习(二):线性模型与非线性模型(激活函数,归一化)

激活函数激活函数的作用是在神经网络模型中加入非线性映射,克服了线性模型表达能力不足的缺点。线性模型一元线性模型如y = wx+b,x为自变量,y为因变量。在二分类问题中,可以看作区域被模型所表示的直线分为了两个区域多元线性模型如y = w1x1+w2x2+w3x3+b在二分类问题中,可以看作三条直线两两相交,分成内区域与外区域对于简单的线性可分数据,线性模型可以完成的很好。但是对于非线性可分数据,往往效果不好,而生活中非线性可分的任务占绝大多数。例如下图,要用多条直线进行分类。非

2021-10-18 11:57:07 4821

原创 机器学习(一):BP神经网络(含代码及注释)

目录人工神经网络神经网络分类BP神经网络代码实现人工神经网络      人们利用数学模型来模仿生物神经元传递信息以及做出决策等等。      下图神经网络数学模型可以等效为输入矩阵X与系数矩阵W相乘并加上偏置项求和,并利用激活函数 f() 进行映射,从而得到输出。其中,系数矩阵W和偏置项是需要我们利用训练集数据进行调整优化,使得整个网络能完成特定任务。神经网络分类按照连接方式

2021-10-17 17:34:15 9403 8

原创 学生成绩管理系统(C语言)

学生成绩管理系统功能菜单查询学生信息修改学生信息删除学生信息显示学生信息各科成绩各分数段人数统计退出系统异常输入报错学生成绩管理系统代码(含注释)Function.h文件代码:#ifndef _CHANGEINFOR_H#define _CHANGEINFOR_H#include <stdio.h>#include <stdlib.h>#include<string.h>#define ClassNum 3//结构体struct

2021-10-17 00:36:08 3381

原创 linux常用指令笔记(1)

命令格式:命令 【-选项】【参数】1.目录处理命令:ls 原意:list命令所在路径:/bin/ls执行权限:所有用户功能:显示目录文件,不加选项和文件目录时,显示当前目录下的文件常用选项搭配:ls 【-选项】【文件或目录】-a 显示所有文件,包括隐藏文件-l 详细信息显示(一般与-h搭配使用 -lh 将其中文件或目录大小用k M等单位表示)-d 查看目录属性-i 显示文件索引号ls -l 所显示信息:例:-rw-...

2020-10-08 14:28:56 124

原创 安装双系统(win10+Ubuntu18.0)使用一段时间后,就直接进入win10,bios启动项里也没有Ubuntu

我先描述一下我的经历。之前不小心把电脑用力拍了拍,然后电脑突然重启,然后win10启动不了,一直在修复。后来在修复好了后,电脑每次就直接进入win10,没有系统选择界面。以下是正常情况下选择界面,但是突然就没有了。我估计原因是win10在修复过程中,自动把Ubuntu系统的启动项给删除了。接下来介绍我的解决方法。一:进入电脑的BIOS每个牌子的电脑进BIOS的方式不同...

2020-01-10 17:09:40 1831

原创 C语言中,指针在一个自定义且不带返回值是如何改变外部一些变量的(指针与函数的相互作用)

如果自定义一个函数,没有任何返回值,而形参是一个指针传入这个函数,在这个函数中,无论如何改变指针所指的方向,函数结束后对外部数据没有变化,唯独通过指针,来间接改变函数以外的变量的值(例如令*p = 一个新的值)。那么此时此刻,在内存中p的地址里的数据已经改变,而函数结束后,该函数对外部做出的贡献就是把原来p的地址里的数据改变了,其他都没变,包括p指针所指的地址。#include<std...

2019-08-24 00:42:47 660

空空如也

空空如也

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

TA关注的人

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