<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sad_liu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sad_liu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sad_liu]]></copyright><item><title><![CDATA[C++11异步线程池]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/145702810</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/145702810</guid><author>sad_liu</author><pubDate>Tue, 18 Feb 2025 12:28:10 +0800</pubDate><description><![CDATA[将原本的vector类m_workers改成了map之后，插入函数就有了变化，这里就变成了map类的插入函数insert，首先它需要一个键值对，分别是线程id和线程，所以需要先创建出一个线程的临时变量，然后就是move函数很重要，不能直接写t，而是要写成move(t)，管理者线程主要任务是控制线程数量，线程少的时候就创建新的工作线程，当线程多的时候就将空闲的线程回收，在这期间需要注意线程同步和各个原子变量的改变。理解这段代码非常重要，首先需要一个while循环来一直获取任务队列中的任务，里面的条件就是。]]></description><category></category></item><item><title><![CDATA[Redis笔记]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/145637178</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/145637178</guid><author>sad_liu</author><pubDate>Fri, 14 Feb 2025 16:49:00 +0800</pubDate><description><![CDATA[不能将前两个操作等价于第三个操作，我们知道redis是一个客户端-服务器结构的程序，在一次命令的执行就需要客户端向服务器发送一次请求，这个请求是通过网络进行通信的，网络的IO通信速度正常来说要比磁盘IO都要慢的，所以前两次的请求和第三次的请求所消耗的时间是不一样的。1、AOF机制并非是直接让工作线程把数据写入硬盘，而是先写入缓冲区，积累一波之后才统一写入硬盘，写入硬盘的次数比一次写入硬盘的大小影响更大，就好比嗑瓜子仍瓜子。获取指定key的过期时间，返回秒，-1表示未设定过期时间，-2表示不存在key。]]></description><category></category></item><item><title><![CDATA[设计模式总结]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/144563366</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/144563366</guid><author>sad_liu</author><pubDate>Wed, 18 Dec 2024 16:09:50 +0800</pubDate><description><![CDATA[最优的解决办法就是用初始化静态变量的方法（这个变量的类型是只能创建一个单例的类的类型），因为静态变量只能初始化一次，并且在C11中初始化是线程安全的。缺点：是针对类的一个改造方法，该方法需要引入许多新的子类，代码可能会因此变得复杂，举个例子，假如有12种颜色和12种形状，那么就有12*12=144个类，这会使得代码十分臃肿。定义对象间一种一对多的关系，当一个对象的状态发生变化的时候，所有依赖于它的对象都得到通知并自动更新在产品类中有用户列表，在用户类中有产品的基类，通过这样建立联系。]]></description><category></category></item><item><title><![CDATA[Qt多线程创建的两种方法]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/144370208</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/144370208</guid><author>sad_liu</author><pubDate>Tue, 10 Dec 2024 11:53:44 +0800</pubDate><description><![CDATA[这个类的目的主要是计算在程序运行的过程中某个阶段的执行用时，下面是给出的应用例子，代码示例中的省略号就代表的是循环体或者是函数体。这个问题分别出现在创建子线程对象和任务对象的时候指定了父对象导致的，它们在实例化对象的时候是一定不要指定父对象的。解决方法：在main.cpp中写上。这里面的省略号就是对应的。]]></description><category></category></item><item><title><![CDATA[算法技巧及模板总结]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/142915884</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/142915884</guid><author>sad_liu</author><pubDate>Sat, 30 Nov 2024 15:51:00 +0800</pubDate><description><![CDATA[文章目录算法技巧及模板总结二分二分查找二分答案滑动窗口定长滑动窗口不定长滑动窗口dfs和bfsdfs求连通块节点个数求最短路朴素Dijkstra---适用于稠密图堆优化Dijkstra---适用于稀疏图Floyd求最短路01bfs判断稀疏图和稠密图Dijkstra和Floyd的比较回溯子集型组合型排列型乘法逆元快速幂时间类的问题判断平方数字符串api数位之和两种写法---循环、字符串求素数的三种方法(式除法、埃式筛、线性筛或称欧拉筛)记忆化搜索和动态规划记忆化搜索翻译成动态规划注意事项(步骤)如何理解记忆化]]></description><category></category></item><item><title><![CDATA[Qt中Socket网络编程]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/144156105</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/144156105</guid><author>sad_liu</author><pubDate>Sat, 30 Nov 2024 15:48:19 +0800</pubDate><description><![CDATA[按钮是对立的，仅仅只能有一个可以选中，然后就是状态栏控件QLable的介绍，这好像是默认显示在左下角的一个控件，通用是通过信号槽的是否连接动态来显示图片。与C++实现的socket编程不同，这里没有用到while循环，这里使用的是一个槽函数来代替的循环，当接收到客户端的连接后(在这里主要是对客户端连接和未连接的按钮能否选中进行了判断，总之就是。]]></description><category></category></item><item><title><![CDATA[8月刷题笔记]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/141903422</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/141903422</guid><author>sad_liu</author><pubDate>Wed, 04 Sep 2024 20:37:59 +0800</pubDate><description><![CDATA[pq.pop();这个就体现出了选择好的数据结构解题的重要性了。记住记住：优先队列定义默认是大根堆，也就是堆顶保存的是最大的元素，如果要定义小根堆那么需要加上greater<>默顶大反g以3128为例，枚举三角形的中间，然后通过乘法原理的数学等式来累加直角三角形的个数，主要是发现这个乘法原理吧，再就是对二维矩阵的操作。]]></description><category></category></item><item><title><![CDATA[7月刷题笔记]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/141903383</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/141903383</guid><author>sad_liu</author><pubDate>Wed, 04 Sep 2024 20:37:16 +0800</pubDate><description><![CDATA[刷题笔记—7月
1512.好数对的数目(哈希)
class Solution {
public:
    int numIdenticalPairs(vector&lt;int&gt;&amp; nums) {
        int cnt = 0;
        unordered_map&lt;int, int&gt; hash;//nums[i]---个数
        for(int i = 0; i &lt; nums.size(); i++) {
            cnt += ha]]></description><category></category></item><item><title><![CDATA[6月刷题笔记]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/140062401</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/140062401</guid><author>sad_liu</author><pubDate>Sat, 29 Jun 2024 12:41:58 +0800</pubDate><description><![CDATA[unordered_map：
unordered_set：
map是自己写的，set是灵神写的，真神啊没话说，我的map其实就是模拟的set的初始化，思路是一样的，但是不同的数据结构用起来展现的简洁程度果然还是不一样。
简单题模拟，思考的时候想复杂了，想用前缀和或者差分数组来写的，主要是特点太像了，但是想不出怎么运用到里面去，最后还是用模拟来写，也还好只用一个for循环。这一题的精华语句在于简洁且明了，%num_people是为了数组要在0-num_people-1的范围内，确保数组不越界的写法可以学一学，]]></description><category></category></item><item><title><![CDATA[刷题记录5.22-5.27]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/139248456</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/139248456</guid><author>sad_liu</author><pubDate>Mon, 27 May 2024 21:33:42 +0800</pubDate><description><![CDATA[这一题属于是二刷了，最开始看灵神的讲解看不懂，就开始跟着卡尔的步伐了，现在回过头来看灵神的解法确实还是比卡尔的简洁很多，主要是省略的步骤我也能分析出来了，比如lambda表达式之类的，回过头来看确实容易理解了许多。这里的dfs其实就是充当了卡尔所讲的backtracking，这里的i表示的是i层递归，递归出口就是到达digits.size()的时候递归退出。由于这里的每个path都是等长的，所以它初始化path的时候固定为n，添加路径的时候也是直接path[i] = c覆盖掉，其实也就等价于之前所写的pat]]></description><category></category></item><item><title><![CDATA[刷题记录5.14-5.20]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/139075287</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/139075287</guid><author>sad_liu</author><pubDate>Mon, 20 May 2024 21:23:28 +0800</pubDate><description><![CDATA[这里是将前缀和与哈希表结合起来的应用，还是很有价值的一道题！这里hash是map类型的哈希表，我当时考虑下标越界的情况，实际上是不会的，它只是int到int类型的映射，只需要[]内的数值在int的范围内，都是能表示的，例如hash[-1]的值初始化就是0，所以根本不需要对hash进行判断溢出的操作。还有一个值得注意的点：循环里一定要是hash[sum]++这一条语句为先，因为最开始前缀和是为0的。每次res累加的是[0,i]的前缀和，goal用(i,j]来表示，sum值表示[0,j]的前缀和
这个题与前面的]]></description><category></category></item><item><title><![CDATA[刷题记录5.10-5.13]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/138824716</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/138824716</guid><author>sad_liu</author><pubDate>Mon, 13 May 2024 23:52:47 +0800</pubDate><description><![CDATA[public://左闭右闭区间//如果数组为空，返回{-1, -1}//两个条件分别是：//1、数组中的所有元素都小于target//2、找到了第一个大于等于target的值了，只不过不是target，而是第一个大于target的值，即数组中不存在target值。这一题已经是三刷了，结果还是能出错。。。感觉还是理解的不够透彻，每刷一遍都有新的理解，这一题实在是二分的经典！]]></description><category></category></item><item><title><![CDATA[刷题记录2]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/138634976</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/138634976</guid><author>sad_liu</author><pubDate>Thu, 09 May 2024 22:41:32 +0800</pubDate><description><![CDATA[删除字符串中的所有相邻重复项、逆波兰表达式求值、滑动窗口最大值、二叉树前序遍历(145、94后序、中序)、二叉树的层序遍历、翻转二叉树、对称二叉树、二叉树的最大深度、二叉树的最小深度、完全二叉树的节点个数]]></description><category></category></item><item><title><![CDATA[刷题记录4.17-5.6]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/138504199</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/138504199</guid><author>sad_liu</author><pubDate>Mon, 06 May 2024 18:38:09 +0800</pubDate><description><![CDATA[移除元素、有序数组的平方、长度最小的子数组、设计链表、反转链表、两两交换链表中的节点、删除链表的倒数第N个节点、环形链表II、有效的字母异位词、两个数组的交集、四数相加II、四数之和、反转字符串中的单词、重复的子字符串]]></description><category></category></item><item><title><![CDATA[15届蓝桥备赛(5)]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/137422823</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/137422823</guid><author>sad_liu</author><pubDate>Sat, 06 Apr 2024 10:43:20 +0800</pubDate><description><![CDATA[打家劫舍、得到更多分数的最少关卡数目、买卖股票的最佳时机、买卖股票的最佳时机II、买卖股票的最佳时机III、最长递增子序列、最长重复子数组、最长公共子序列、判断子序列、不同的子序列、两个字符的删除操作、编辑距离、回文子串、最长回文子序列]]></description><category></category></item><item><title><![CDATA[15届蓝桥备赛(4)]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/137181738</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/137181738</guid><author>sad_liu</author><pubDate>Sat, 30 Mar 2024 20:16:57 +0800</pubDate><description><![CDATA[动态规划、01背包、使用最小花费爬楼梯、整数拆分、不同的二叉搜索树、分割等和子集、最后一块石头的重量II、目标和、一和零、完全背包、零钱兑换II、组合总和IV零钱兑换、完全平方数、单词拆分]]></description><category></category></item><item><title><![CDATA[15届蓝桥杯备赛(3)]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/137011217</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/137011217</guid><author>sad_liu</author><pubDate>Mon, 25 Mar 2024 13:25:20 +0800</pubDate><description><![CDATA[回溯算法、组合、组合总和III、电话号码的字母组合、组合总和、组合总和II、分割回文串、子集、子集II、非递减子序列、全排列、全排列II、贪心算法、分发饼干、最大子数组和、买股票的最佳时机II、跳跃游戏]]></description><category></category></item><item><title><![CDATA[15届蓝桥杯备赛(2)]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/136809657</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/136809657</guid><author>sad_liu</author><pubDate>Mon, 18 Mar 2024 15:06:38 +0800</pubDate><description><![CDATA[二分查找、在排序数组中查找元素的第一个和最后一个位置、寻找旋转排序数组中的最小值、搜索旋转排序数组、反转链表、反转链表II、相同的树、对称二叉树、平衡二叉树、二叉树的右视图、验证二叉搜索树、二叉树的最近公共祖先、二叉搜索树的最近公共祖先、二叉树层序遍历、二叉树的锯齿形层序遍历、找树左下角的值]]></description><category></category></item><item><title><![CDATA[15届蓝桥杯备赛]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/136689766</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/136689766</guid><author>sad_liu</author><pubDate>Wed, 13 Mar 2024 20:12:08 +0800</pubDate><description><![CDATA[两数之和、刷题统计、贪心、重新分装苹果、幸福值最大化的选择方案、相向双指针、三数之和、盛最多水的容器、接雨水、同向双指针(滑动窗口)、长度最小的子数组、乘积小于k的子数组、无重复字符的最长字串、动态规划、不同路径、最小路径和、不同不同路径II、三角形最小路径和]]></description><category></category></item><item><title><![CDATA[cpp---提高]]></title><link>https://blog.youkuaiyun.com/sad_liu/article/details/134937267</link><guid>https://blog.youkuaiyun.com/sad_liu/article/details/134937267</guid><author>sad_liu</author><pubDate>Mon, 11 Dec 2023 21:48:47 +0800</pubDate><description><![CDATA[/自己写一个谓词public://没有谓词默认升序//遍历算法it!= v.end();it++)cout ]]></description><category></category></item></channel></rss>