<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_41219243的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_41219243</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_41219243]]></copyright><item><title><![CDATA[keil debug失败问题]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/149691607</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/149691607</guid><author>qq_41219243</author><pubDate>Sun, 27 Jul 2025 16:15:04 +0800</pubDate><description><![CDATA[1.最近在使用gd32芯片开发，一开始使用的是st-link烧录器，发现只能连接不能烧录，后面换成了创芯工厂的pwlink2烧录器后可以烧录程序，在此记录烧录程序出现的几个问题。（1）发现使用keil不能进行debug，排查了好几天，发现问题出在没有将芯片的rst复位引脚与烧录器的复位引脚连接，连接了后正常。2.烧录器每次烧录后都需要重新进行插拔，才能进行烧录，后发现是当时画PCB的时候boot引脚悬空没有下拉导致，下拉后正常。]]></description><category></category></item><item><title><![CDATA[使用keil 5新建工程报错file no found ‘core_cm23.h‘问题解决]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/149469608</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/149469608</guid><author>qq_41219243</author><pubDate>Sat, 19 Jul 2025 20:14:13 +0800</pubDate><description><![CDATA[1.最近在学习gd32单片机，使用官方下载的固件包，自己新建工程，进行编译，一直报错../../../GD32E23x_Firmware_Library/CMSIS/GD/GD32E23x/Include\gd32e23x.h(160): error: 'core_cm23.h' file not found，但是使用官方提供的标准例程就能编译通过。2.排查对比了好久，发现只需要勾选这个库调用就可解决。]]></description><category></category></item><item><title><![CDATA[每日一题（day8）最长公共子串、子数组最大累加和、最长回文子串]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/120315334</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/120315334</guid><author>qq_41219243</author><pubDate>Wed, 15 Sep 2021 19:37:18 +0800</pubDate><description><![CDATA[一、最长公共子串

动态规划法

描述

给定两个字符串str1和str2,输出两个字符串的最长公共子串

题目保证str1和str2的最长公共子串存在且唯一。

示例1

输入：


"1AB2345CD","12345EF"

返回值：


"2345"



class Solution {
public:
    /**
     * longest common substring
     * @param str1 string字符串 the string
     * @param str2]]></description><category></category></item><item><title><![CDATA[每日一题（day7）]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/119947357</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/119947357</guid><author>qq_41219243</author><pubDate>Fri, 27 Aug 2021 10:48:27 +0800</pubDate><description><![CDATA[一、链表中环的入口结点

描述

给一个链表，若其中包含环，请找出该链表的环的入口结点，否则，返回null。

输入描述：

输入分为2段，第一段是入环前的链表部分，第二段是链表环的部分，后台将这2个会组装成一个有环或者无环单链表

返回值描述：

返回链表的环的入口结点即可。而我们后台程序会打印这个节点

解题思路：

1.采用快慢指针进行求解
如果链表存在环，则fast和slow会在环内相遇，定义相遇点到入口点的距离为X,定义环的长度为C,定义头到入口的距离为L,fast在slow进入环之后一圈内追上s]]></description><category></category></item><item><title><![CDATA[每日一题（day6）]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/119868186</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/119868186</guid><author>qq_41219243</author><pubDate>Mon, 23 Aug 2021 14:14:14 +0800</pubDate><description><![CDATA[一、设计LRU缓存结构

描述

设计LRU(最近最少使用)缓存结构，该结构在构造时确定大小，假设大小为K，并有如下两个功能

1. set(key, value)：将记录(key, value)插入该结构

2. get(key)：返回key对应的value值



提示:

1.某个key的set或get操作一旦发生，认为这个key的记录成了最常使用的，然后都会刷新缓存。

2.当缓存的大小超过K时，移除最不经常使用的记录。

3.输入一个二维数组与K，二维数组每一维有2个或者3个数字，第1个数字为op]]></description><category></category></item><item><title><![CDATA[每日一题（day5）]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/119751764</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/119751764</guid><author>qq_41219243</author><pubDate>Tue, 17 Aug 2021 10:56:44 +0800</pubDate><description><![CDATA[一、最长无重复子数组（c++）

描述

给定一个数组arr，返回arr的最长无重复元素子数组的长度，无重复指的是所有数字都不相同。

子数组是连续的，比如[1,3,5,7,9]的子数组有[1,3]，[3,5,7]等等，但是[1,3,7]不是子数组



输入：


[2,3,4,5]

复制返回值：


4


复制说明：


[2,3,4,5]是最长子数组    


class Solution {
public:
    /**
     * 
     * @param arr int整型vect]]></description><category></category></item><item><title><![CDATA[每日一题（day4）]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/119346616</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/119346616</guid><author>qq_41219243</author><pubDate>Tue, 03 Aug 2021 11:38:16 +0800</pubDate><description><![CDATA[1.合并有序链表

描述

将两个有序的链表合并为一个新链表，要求新的链表是通过拼接两个链表的节点来生成的，且合并后新链表依然有序。



示例1

输入：


{1},{2}

返回值：


{1,2}




class Solution {
public:
    /**
     * 
     * @param l1 ListNode类 
     * @param l2 ListNode类 
     * @return ListNode类
     */
    ListNode* merge]]></description><category></category></item><item><title><![CDATA[每日一题（day3）]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/119243816</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/119243816</guid><author>qq_41219243</author><pubDate>Fri, 30 Jul 2021 12:34:10 +0800</pubDate><description><![CDATA[1.二叉树前中后序遍历






/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param root Tr
     eeNode类 the root of binary tree
     * @return int整型vector&lt;vector.]]></description><category></category></item><item><title><![CDATA[使用多线程按奇偶数交替打印0-100]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/119188008</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/119188008</guid><author>qq_41219243</author><pubDate>Wed, 28 Jul 2021 19:20:58 +0800</pubDate><description><![CDATA[#include &lt;thread&gt;
#include &lt;mutex&gt;
#include &lt;condition_variable&gt;

void thread_print()
{
	std::mutex mtx;
	condition_variable c;
	int n = 100;
	bool flag = true;

	thread t1([&amp;](){
		int i = 0;
		while (i &lt; n)
		{
			unique_lock&lt.]]></description><category></category></item><item><title><![CDATA[单例模式设计实现]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/119187815</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/119187815</guid><author>qq_41219243</author><pubDate>Wed, 28 Jul 2021 19:16:29 +0800</pubDate><description><![CDATA[一、饿汉模式


// 保证全局(整个进程)只有唯一实例对象
// 饿汉模式 : 一开始就创建对象，特点简单
// 缺陷1：
// 多个单例对象A B C,假设要求他们之间有依赖关系：依次创建初始化A 、 B 、 Ｃ
// 饿汉模式无法保证顺序
// 缺陷2：可能会导致程序启动慢
class Singleton
{
public:
	Singleton&amp; GetInstance()
	{
		return _sins;
	}
private:
	Singleton()
	{}

	Singleton]]></description><category></category></item><item><title><![CDATA[C++智能指针及模拟实现]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/119187470</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/119187470</guid><author>qq_41219243</author><pubDate>Wed, 28 Jul 2021 19:07:46 +0800</pubDate><description><![CDATA[一、智能指针概念、原理及其使用

（一）概念

当类中有指针成员时，一般有两种方式来管理指针成员：一是采用值型的方式管理，每个类对象都保留一份指针指向的对象的拷贝；另一种更优雅的方式是使用智能指针，从而实现指针指向的对象的共享。智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联，引用计数跟踪该类有多少个对象的指针指向同一对象。

（二）原理

1.RAII（Resource Acquisition Is Ini]]></description><category></category></item><item><title><![CDATA[高并发内存池项目（concurrent memory pool）]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/119168755</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/119168755</guid><author>qq_41219243</author><pubDate>Wed, 28 Jul 2021 12:35:32 +0800</pubDate><description><![CDATA[一、高并内存池概念

内存池(Memory Pool) 是一种动态内存分配与管理技术。 通常情况下，程序员习惯直接使用 new、delete、malloc、free 等API申请分配和释放内存，这样导致的后果是：当程序长时间运行时，由于所申请内存块的大小不定，频繁使用时会造成大量的内存碎片从而降低程序和操作系统的性能。内存池则是在真正使用内存之前，先申请分配一大块内存(内存池)留作备用，当程序员申请内存时，从池中取出一块动态分配，当程序员释放内存时，将释放的内存再放入池内，再次申请池可以 再取出来使用，并尽]]></description><category></category></item><item><title><![CDATA[常见七大排序算法总结--超详细适合初学者]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/113419771</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/113419771</guid><author>qq_41219243</author><pubDate>Mon, 26 Jul 2021 17:59:52 +0800</pubDate><description><![CDATA[一、排序算法的概念以及应用
（一）概念
所谓排序，就是使一串记录，按照其中的某个或某些关键字的大小，递增或递减的排列起来的操作。排序算法，就是如何使得记录按照要求排列的方法。
（二）分类
内部排序：数据元素全部放在内存中的排序。
外部排序：数据元素太多不能同时放在内存中，根据排序过程的要求不能在内外存之间移动数据的排序。
（三）应用
1.淘宝京东商品的销量排名
2.各大高校的综合实力排名
3.以及各大城市GDP排名
4.外卖评分以及百度竞价排名
（四）常见的排序算法

二、排序算法的实现（升序排列）
（一）]]></description><category></category></item><item><title><![CDATA[数据结构学习笔记------红黑树（呕心沥血版！！！！）]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/117469915</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/117469915</guid><author>qq_41219243</author><pubDate>Wed, 02 Jun 2021 16:37:02 +0800</pubDate><description><![CDATA[一、红黑树的概念


红黑树，是一种二叉搜索树，但在每个结点上增加一个存储位表示结点的颜色，可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制，红黑树确保没有一条路径会比其他路径长出俩倍，因而是接近平衡的。


二、红黑树的性质

三、红黑树的定义与结构

四、红黑树的插入、验证与删除

（一）插入

（二）验证

（三）删除

五、红黑树的应用

六、红黑树与AVL树的比较






...]]></description><category></category></item><item><title><![CDATA[每日一题(day2)-----有假币]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/117440171</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/117440171</guid><author>qq_41219243</author><pubDate>Tue, 01 Jun 2021 11:51:15 +0800</pubDate><description><![CDATA[一、跳石板
1.描述

【解题思路】：

平均分三份是最快的方法，两份进行称重（对比出三个的重量），后对最重的那份再次进行称重，直到称重的个数不足2个时则结束，获得假币如果无法平均分3分则余数要么是1要么是2，因为是要最多称几次，n=n/3+1满足每次取最大分称3份，取两份一样多的过秤，然后把三份中最多的那份继续分，直到硬币剩余0或1时截止。

2.代码实现
#include&lt;iostream&gt;

using namespace std;

int main()
{
    int n=0;
 ]]></description><category></category></item><item><title><![CDATA[每日一题(day1)-----跳石板、最难问题、因子个数]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/117424130</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/117424130</guid><author>qq_41219243</author><pubDate>Mon, 31 May 2021 18:12:56 +0800</pubDate><description><![CDATA[代码实现
#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;algorithm&gt;

using namespace std;

//求约数
void get_y(int n,vector&lt;int&gt;&amp; y)
{
    for(int i=2;i&lt;=sqrt(n);++i)
    {
        if(n%i==0)
        {
            y.push_back(i);
    .]]></description><category></category></item><item><title><![CDATA[数据结构学习笔记-----AVL树节点插入中平衡因子的调节及旋转问题]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/117293036</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/117293036</guid><author>qq_41219243</author><pubDate>Wed, 26 May 2021 17:14:45 +0800</pubDate><description><![CDATA[目录

一、AVL树

（一）概念

（二）定义

二、AVL树的插入

（一）先按照二叉搜索树的规则将节点插入到AVL树中

（二）平衡因子调节

1.调节过程

2.代码实现

（三）旋转

1.概念

2.新节点插入较高左子树的左侧---左左：右单旋

3.新节点插入较高右子树的右侧---右右：左单旋

4. 新节点插入较高左子树的右侧---左右：先左单旋再右单旋

5.新节点插入较高右子树的左侧---右左：先右单旋再左单旋

一、AVL 树

（一）概念


对于一个AVL树，它是一个高度平衡的搜.]]></description><category></category></item><item><title><![CDATA[Linux学习笔记-----vim下多行代码注释与取消]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/117038707</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/117038707</guid><author>qq_41219243</author><pubDate>Wed, 19 May 2021 18:11:40 +0800</pubDate><description><![CDATA[一、注释多行代码

1.将光标打到多行代码起始处，比如这里我需要注释73-81行代码，我将光标打到73行处。



2.按下Ctrl+V进入VISUAL BLOCK模式，这里我们使用h（左） j （下） k（上）  l（右）这四个键来进行操作，一定不要使用键盘的箭头，亲测无效。如下，我们使用j （下）键走到81行。



3.接着按下大写的I 键或者按Shift+i （两个效果一样，都是大写I）切换到输入模式，直接输入注释符号//，再按下Esc就可完成注释了。





二、取消注释多行代...]]></description><category></category></item><item><title><![CDATA[二叉树的前中后序遍历-----非递归迭代实现     面试冲冲冲！！！]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/116939622</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/116939622</guid><author>qq_41219243</author><pubDate>Mon, 17 May 2021 21:36:34 +0800</pubDate><description><![CDATA[目录

一、二叉树的前中后序遍历概念

（一）前序遍历

（二）中序遍历

（三）后序遍历

（四）层序遍历

二、二叉树前序遍历

（一）题目描述

（二）思路

（三）程序实现

三、二叉树中序遍历

（一）题目描述

（二）思路

（三）程序实现

四、二叉树后序遍历

（一）题目描述

（二）思路

（三）程序实现




以下是整理了一晚上的二叉树三种非递归遍历方式，关于非递归遍历，有一个大的特点就是代码简单，但是难以理解。面试中常常考察我们的非递归迭代实现，而主要以后序遍历为重点！！


一、.]]></description><category></category></item><item><title><![CDATA[Linux学习笔记-----网络编程套接字]]></title><link>https://blog.youkuaiyun.com/qq_41219243/article/details/116901501</link><guid>https://blog.youkuaiyun.com/qq_41219243/article/details/116901501</guid><author>qq_41219243</author><pubDate>Sun, 16 May 2021 21:17:18 +0800</pubDate><description><![CDATA[一 、概念

（一）端口号概念


端口号标定该主机上互联网中唯一一个进程。
	进程ID是每个进程都有的，但是端口号只有是网络进程才给指派端口号。
	一个端口号用来标识一个进程，一个进程可以绑定多个端口号。一个进程可以同时拥有端口和pid。
	传输层协议(TCP和UDP)的数据段中有两个端口号, 分别叫做源端口号和目的端口号. 就是在描述 "数据是谁发的, 要发给谁"。


（二）套接字概念


所谓套接字(Socket)，就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象，套接字编程本质是进程间]]></description><category></category></item></channel></rss>