自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (2)
  • 收藏
  • 关注

原创 C++网络编程

套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。计算机是通过TCP/IP协议进行互联从而进行通信的,为将TCP/IP协议进行隐藏,引出套接字这个概念。套接字可以看成【IP地址+端口号】

2024-03-14 21:05:15 353

原创 C++11新特性-智能指针

程序在运行的时候,临时变量以及函数会放在栈中。动态创建的东西会放在堆中。栈中的东西操作系统会自动释放,堆中的东西,需要程序员手动释放。

2024-03-10 19:57:59 514

原创 Qt序列化

Qt中提供了二进制格式的序列化。对QT中原生的数据类型,例如:QString、QMap、QHash等,不需要做其它额外的操作,利用QDataStream直接就可以序列化到文件中。

2024-03-09 20:49:53 189

原创 C++Boost的序列化

date;侵入式版本{}{}return out;} date;date dr;序列化版本控制123public:CPerson();;~CPerson();private://要想序列化用户定义的类型 必须定义seriallze函数//serialzation不应该被显示调用 因为它仅在序列化或者反序列化的时候调用。

2024-03-09 20:48:34 945

原创 Git常用操作

并且git还告诉我们 fix conflicts and then run “git rebase --continue”,意思是解决冲突然后执行git rebase --continue命令,其实git rebase --continue的正确操作应该是确认处理好冲突后则将调整好的文件添加到暂存区,并执行git rebase --continue命令告诉git,我已经解决好冲突了,那么冲突的文件中就出现了需要手动合并的部分,而git pull --rebase不同的地方则是当有这些冲突存在时,

2024-02-21 11:33:21 636

原创 结构体字节对齐

以上结构体字节对齐之后,sizeof(st1)=24。以上结构体字节对齐之后,sizeof(st)=16。按照struct中最大的基本类型的整数倍进行对齐。

2024-01-26 23:20:36 135

原创 C++设计模式

计算器抽象类,里边有两个虚方法,一个获得当前的计算结果,另一个设置操作数。其他的加减乘除类均可以继承自计算器抽象类。如果再想增加一个取余类的话,只需重复增加新的类即可,不用在原有类代码的基础上进行修改。提升了代码的可扩展性。增加新功能,通过增加代码的方式实现,而非修改源代码。

2023-12-03 20:36:36 648

原创 Boost的日志库Log使用详解

【代码】Boost的日志库Log使用详解。

2024-05-08 00:20:51 233

原创 103. 二叉树的锯齿形层序遍历

【代码】103. 二叉树的锯齿形层序遍历。

2024-05-05 22:04:34 184

原创 102. 二叉树的层序遍历

if (!//自定义循环队列最大可存储节点个数为2000//当前层父节点数量int());//取出当前父节点,并将所有的父节点的孩子节点入队i++){return ans;

2024-05-05 20:54:09 415

原创 148. 排序链表

进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?2、遍历一遍之后,自动整理完成排序,1、利用优先队列结构构造小顶堆,3、之后使用尾插法插入即可。

2024-05-03 00:04:06 278

原创 12. 整数转罗马数字

通常情况下,罗马数字中小的数字在大的数字的右边。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。首先想到的是使用map或unordered_map容器,但是map容器会对key值进行自动排序,unordered_map根据哈希值进行存储,不能完全保证顺序排列。例如, 罗马数字 2 写做 II ,即为两个并列的 1。解释: M = 1000, CM = 900, XC = 90, IV = 4.解释: L = 50, V = 5, III = 3.1、定义基础组合规则。

2024-04-28 13:12:46 347

原创 LCR 099. 最小路径和

3、动态转移方程:目标位置的结果为:自身的结果+=(左边和上边的最小值)即:sumDist[i][j]+=min(sumDist[i][j-1],sumDist[i-1][j]);1、结果表示:sumDist[i][j]表示到达第i行第j列的单元格时,最小的路径和。2、边界条件:sumDist[i][0]+=sumDist[i-1][0];解释:因为路径 1→3→1→1→1 的总和最小。

2024-04-26 17:21:02 457

原创 146. LRU 缓存

int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1。// 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}// 缓存是 {1=1, 2=2}// 返回 -1 (未找到)lRUCache.get(1);// 返回 -1 (未找到)lRUCache.put(1, 1);// 缓存是 {1=1}lRUCache.get(1);

2024-04-23 22:27:39 740

原创 206. 反转链表

【代码】206. 反转链表。

2024-04-23 20:18:23 242

原创 279. 完全平方数

完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。3、动态转移方程:dp[i]应为i之前【最大平方数的剩余值】所需要的最少完全平方数的个数+1。1、dp[i]表示第i个数最少需要多少个完全平方数。2、边界条件:dp[0]=0;解释:12 = 4 + 4 + 4。解释:13 = 4 + 9。

2024-04-22 21:01:37 150

原创 300. 最长递增子序列

子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。3、动态转移方程:dp[i] = max(dp[i], dp[j] + 1);解释:最长递增子序列是 [2,3,7,101],因此长度为 4。

2024-04-22 20:15:00 384

原创 55. 跳跃游戏-动态规划

输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。动态规划思路:1、dp[i]表示在该位置可以跳跃的最大长度;

2024-04-21 18:32:21 154

原创 LCR 023. 相交链表

交叉链表结构本质上指的是链表中两个节点所指向的地址相同,而非链表节点中的val相同。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。解释:从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。因为交叉链表,并不是链表节点的值相等,而是链表指针所指向的地址相同。解释:相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。

2024-04-20 22:20:26 703

原创 328. 奇偶链表

你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。

2024-04-20 21:18:13 183

原创 198. 打家劫舍

解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。//偷第1间房屋所能得到的最大金额,为max(第0间房屋的金额,第1间房屋的金额)//偷第0间房屋所能得到的最大金额,为第0间房屋的金额。第k-1间房屋,只能偷第k-2间房屋。

2024-04-18 22:20:28 706

原创 70. 爬楼梯

解释:有两种方法可以爬到楼顶。解释:有三种方法可以爬到楼顶。

2024-04-18 21:38:35 210

原创 LCP 55. 采集果实

2=6 第 2 批需要采集 1 颗第 2 类型果实,需要采集 1 次,耗时为 2*1=2 返回总耗时 2+6+2=10。解释: 由于单次最多采集 3 颗 第 0 批需要采集 2 颗第 0 类型果实,需要采集 1 次,耗时为 2。解释: 由于单次最多采集 2 颗 第 0 批需要采集 3 颗第 0 类型果实,需要采集 2 次,耗时为 1。1=2 第 1 批需要采集 4 颗第 1 类型果实,需要采集 2 次,耗时为 3。2=2 第 1 批需要采集 5 颗第 0 类型果实,需要采集 3 次,耗时为 1。

2024-04-18 21:23:10 700

原创 2279. 装满石头的背包的最大数量

【代码】2279. 装满石头的背包的最大数量。

2024-04-18 20:57:43 311

原创 445. 两数相加 II

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

2024-04-17 21:48:09 586

原创 2. 两数相加

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。解释:342 + 465 = 807.

2024-04-17 20:26:38 127

原创 334. 递增的三元子序列

解释:三元组 (3, 4, 5) 满足题意,因为 nums[3] == 0 < nums[4] == 4 < nums[5] == 6。进阶:你能实现时间复杂度为 O(n) ,空间复杂度为 O(1) 的解决方案吗?解释:任何 i < j < k 的三元组都满足题意。解释:不存在满足题意的三元组。

2024-04-17 19:55:14 144

原创 62. 不同路径

但是到达目标位置的左边和上边均有多条路径,因此到达目标位置的路径即为:到达目标位置左边的路径数+到达目标位置上边的路径数。由上图可知,机器人到达第1行第1列的路径只能通过两种方式,即先到达目标位置的左边,或先到达目标位置的上边。首先,确定动态规划数组。由于当前是一个二维方式的路径,因此定义二维数组。动态数组的含义:dp[i][j]为到达第i行第j列的路径总数。从左上角开始,总共有 3 条路径可以到达右下角。其次,初始化dp矩阵,由于机器人。因此,初始化dp矩阵为。之后,确定动态转移方程。

2024-04-15 10:25:40 322

原创 033. 字母异位词分组

注意:若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。1、将相同的字母异位词进行收集。

2024-04-14 00:15:26 260

原创 73. 矩阵置零

【代码】73. 矩阵置零。

2024-04-12 19:08:59 441

原创 51. N 皇后

每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。解释:如上图所示,4 皇后问题存在两个不同的解法。

2024-04-04 17:54:45 285

原创 100. 相同的树

【代码】100. 相同的树。

2024-03-31 15:54:01 494

原创 69. x 的平方根

解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。在range(0,x)的中查找一个合适的整数,使得该整数的平方等于x。暴力求解(遍历range(0,x)):效率较低,时间复杂度:O(n)二分查找:时间复杂度:O(log(n))由于返回类型是整数,结果。

2024-03-31 15:16:56 341

原创 145. 二叉树的后序遍历

给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历。进阶:递归算法很简单,你可以通过迭代算法完成吗?

2024-03-27 22:48:18 212

原创 144. 二叉树的前序遍历

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。进阶:递归算法很简单,你可以通过迭代算法完成吗?

2024-03-27 22:28:40 414

原创 137. 只出现一次的数字 II

【代码】137. 只出现一次的数字 II。

2024-03-27 21:53:08 214

原创 122. 买卖股票的最佳时机 II

解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。总利润为 4 + 3 = 7。,即为可以取得的最大利润。

2024-03-26 23:19:57 696

原创 121. 买卖股票的最佳时机

解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。解释:在这种情况下, 没有交易完成, 所以最大利润为 0。持续比较当前价格与历史最低点的差。

2024-03-26 21:43:25 357

原创 素数、完数、最小公倍数、最大公约数

【代码】素数、完数、最小公倍数、最大公约数。

2024-03-24 17:57:12 101

原创 118. 杨辉三角

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

2024-03-14 23:57:16 183

Qt-双链表的插入及排序

使用Qt实现的双链表插入及排序,通过界面添加并展示

2023-09-24

android的chrome

android的chrome

2023-08-10

EDA-《8-3优先译码器》

EDA-《8-3优先译码器》

2023-07-07

EDA实现的多路选择器MUX21a

EDA实现的多路选择器MUX21a

2023-07-07

卷积神经网络LSTM-pytroch

卷积神经网络LSTM-pytroch

2023-07-07

卷积神经网络LSTM算法

卷积神经网络LSTM算法

2023-07-07

K-means聚类算法

K-means算法,聚类基础版本

2023-07-07

基于微信小程序、JavaWeb和嵌入式搭建的智能灯控系统

基于微信小程序、JavaWeb和嵌入式搭建的智能灯控系统

2022-03-15

《基于C/C++的学生信息管理系统》

《基于C/C++的学生信息管理系统》

2022-03-13

空空如也

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

TA关注的人

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