<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ddmike2015的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/ddmike2015</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; ddmike2015]]></copyright><item><title><![CDATA[字符串的字典序最小循环表示]]></title><link>https://blog.csdn.net/ddmike2015/article/details/163015815</link><guid>https://blog.csdn.net/ddmike2015/article/details/163015815</guid><author>ddmike2015</author><pubDate>Sun, 19 Jul 2026 11:40:57 +0800</pubDate><description><![CDATA[摘要：这篇文章介绍了Booth算法，用于寻找字符串的字典序最小循环表示。该算法时间复杂度为O(n)，通过将字符串扩展为原字符串的两倍，使用双指针i和j进行比较，当遇到不同字符时移动指针，最终确定最小循环表示的起始位置。核心思想是避免不必要的比较，确保线性时间复杂度。算法适用于处理环形字符串的最小表示问题。]]></description><category></category></item><item><title><![CDATA[快速获取区间内的最大最小值（RMQ模板）]]></title><link>https://blog.csdn.net/ddmike2015/article/details/151926551</link><guid>https://blog.csdn.net/ddmike2015/article/details/151926551</guid><author>ddmike2015</author><pubDate>Sun, 21 Sep 2025 12:38:44 +0800</pubDate><description><![CDATA[【代码】快速获取区间内的最大最小值（RMQ模板）]]></description><category></category></item><item><title><![CDATA[组合数取模（C++）]]></title><link>https://blog.csdn.net/ddmike2015/article/details/144802952</link><guid>https://blog.csdn.net/ddmike2015/article/details/144802952</guid><author>ddmike2015</author><pubDate>Sun, 29 Dec 2024 11:41:35 +0800</pubDate><description><![CDATA[组合数取模]]></description><category></category></item><item><title><![CDATA[字典树模板]]></title><link>https://blog.csdn.net/ddmike2015/article/details/136984815</link><guid>https://blog.csdn.net/ddmike2015/article/details/136984815</guid><author>ddmike2015</author><pubDate>Sun, 24 Mar 2024 11:46:37 +0800</pubDate><description><![CDATA[字典树]]></description><category></category></item><item><title><![CDATA[Z algorithm（Z算法，扩展kmp）]]></title><link>https://blog.csdn.net/ddmike2015/article/details/136033619</link><guid>https://blog.csdn.net/ddmike2015/article/details/136033619</guid><author>ddmike2015</author><pubDate>Sun, 04 Feb 2024 22:35:18 +0800</pubDate><description><![CDATA[Z数组的元素Z[i]存储从str[i]开始的最长子串的长度，也是str[0..n-1]的前缀。用于处理字符串匹配问题，记个模板代码。时间复杂度O(n)。]]></description><category></category></item><item><title><![CDATA[start至finish，每个数位不超过limit，数的后缀为s]]></title><link>https://blog.csdn.net/ddmike2015/article/details/135434212</link><guid>https://blog.csdn.net/ddmike2015/article/details/135434212</guid><author>ddmike2015</author><pubDate>Sun, 07 Jan 2024 00:00:06 +0800</pubDate><description><![CDATA[从start至finish，每个数位都不能超过limit，且数的后缀为s（保证s的每个数位都不超过limit），求一共有多少个这样的数。只要求出0~finish 有符合要求的数以及0~start-1有多少这样的数，然后减一减就行了，具体怎么算，详情看代码。leetcode双周赛121最后一题，错了好多次，有点扣脚，记个自己的模板。]]></description><category></category></item><item><title><![CDATA[pip 安装包时 报错——gcc编译失败]]></title><link>https://blog.csdn.net/ddmike2015/article/details/119345201</link><guid>https://blog.csdn.net/ddmike2015/article/details/119345201</guid><author>ddmike2015</author><pubDate>Tue, 03 Aug 2021 10:50:34 +0800</pubDate><description><![CDATA[可能原因

gcc版本不够高，默认使用的是c98，而要编译代码中有c11的东西

解决方案（ubuntu下）

sudo apt-get install gcc-8
sudo apt-get install g++-8
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-8 /usr/bin/gcc
sudo rm /usr/bin/g++
sudo ln -s /usr/bin/g++-8 /usr/bin/g++
...]]></description><category></category></item><item><title><![CDATA[C++ Primer 第15章 面向对象程序设计 重要知识点]]></title><link>https://blog.csdn.net/ddmike2015/article/details/111133700</link><guid>https://blog.csdn.net/ddmike2015/article/details/111133700</guid><author>ddmike2015</author><pubDate>Mon, 04 Jan 2021 16:21:49 +0800</pubDate><description><![CDATA[重要知识点

面向对象程序设计（object-oriented programming)的核心思想是数据抽象、继承和动态绑定。

任何构造函数之外的非静态函数都可以是虚函数。

关键字virtual只能出现在类内部的声明语句之前而不能用于类外部的函数定义。

派生类能访问公有成员，而不能访问私有成员，也可以访问受保护的(protected)成员。

从派生类向基类的类型转换只对指针或引用类型有效。

如果我们通过基类的引用或指针调用函数，则使用基类中定义的默认实参，即使实际运行的是派生类中的函数...]]></description><category></category></item><item><title><![CDATA[Python——装饰器@wraps]]></title><link>https://blog.csdn.net/ddmike2015/article/details/100805758</link><guid>https://blog.csdn.net/ddmike2015/article/details/100805758</guid><author>ddmike2015</author><pubDate>Fri, 13 Sep 2019 21:48:18 +0800</pubDate><description><![CDATA[Python——装饰器@wraps闭包闭包的解释闭包的使用方式装饰器@wraps
闭包
在了解装饰器@wraps之前，先需要理解一下闭包
相关资料:链接
闭包的解释
引用链接中的一段代码（为了方便解释我把源代码中的printer改成了printer1）
def make_printer(msg):
    def printer():
        print(msg)  # 夹带私货（外部变量...]]></description><category></category></item><item><title><![CDATA[leetcode第149场周赛]]></title><link>https://blog.csdn.net/ddmike2015/article/details/99196378</link><guid>https://blog.csdn.net/ddmike2015/article/details/99196378</guid><author>ddmike2015</author><pubDate>Sun, 11 Aug 2019 16:32:55 +0800</pubDate><description><![CDATA[leetcode第149场周赛比赛感想1154. 一年中的第几天题目大意解题思路相关代码1155. 掷骰子的N种方法题目大意解题思路相关代码1156. 单字符重复子串的最大长度题目大意解题思路相关代码1157. 子数组中占绝大多数的元素题目大意解题思路相关代码
比赛感想
做出来了三题，最后一题python查询用O(n)的方法超时了，一直在想小于O(n)的方法，然后gg，不过别人用c++写的O(n)...]]></description><category></category></item><item><title><![CDATA[leetcode第148场周赛]]></title><link>https://blog.csdn.net/ddmike2015/article/details/98471046</link><guid>https://blog.csdn.net/ddmike2015/article/details/98471046</guid><author>ddmike2015</author><pubDate>Sun, 04 Aug 2019 19:05:57 +0800</pubDate><description><![CDATA[周赛感想

    终于都做出来了，继续努力=，=



第一题递减元素使数组呈锯齿状

题目大意

给你一个整数数组nums，每次操作会从中选择一个元素并将该元素的值减少1。

    如果符合下列情况之一，则数组A就是锯齿数组：

        每个偶数索引对应的元素都大于相邻的元素，即A[0] &gt; A[1] &lt...]]></description><category></category></item><item><title><![CDATA[leetcode第147场周赛]]></title><link>https://blog.csdn.net/ddmike2015/article/details/97613800</link><guid>https://blog.csdn.net/ddmike2015/article/details/97613800</guid><author>ddmike2015</author><pubDate>Sun, 28 Jul 2019 14:10:50 +0800</pubDate><description><![CDATA[有点忧伤，博弈题没做出来，前面还wa了好几次。

第一题第 N 个泰波那契数

题目大意

    泰波那契序列Tn定义如下：

    T0= 0, T1= 1, T2= 1, 且在 n &gt;= 0的条件下 Tn+3= Tn+ Tn+1+ Tn+2

    给你整数n，请返回第 n 个泰波那契数Tn的值。

解题思路

    类...]]></description><category></category></item><item><title><![CDATA[leetcode第146场周赛]]></title><link>https://blog.csdn.net/ddmike2015/article/details/96729752</link><guid>https://blog.csdn.net/ddmike2015/article/details/96729752</guid><author>ddmike2015</author><pubDate>Sun, 21 Jul 2019 16:34:46 +0800</pubDate><description><![CDATA[比赛感想

做出了三题，掉分应该不会掉，最后一题没做出来，这次难度还行。第一题又把题目理解错了，挂了一次。。还得加油呀=，=



第一题等价多米诺骨牌对的数量

题目大意

   给你一个由一些多米诺骨牌组成的列表dominoes，dominoes[i] = [a, b]和dominoes[j] = [c, d]等价的前提是a==c且b==d，或是a=...]]></description><category></category></item><item><title><![CDATA[leetcode第145场周赛]]></title><link>https://blog.csdn.net/ddmike2015/article/details/96195201</link><guid>https://blog.csdn.net/ddmike2015/article/details/96195201</guid><author>ddmike2015</author><pubDate>Wed, 17 Jul 2019 00:00:43 +0800</pubDate><description><![CDATA[比赛感想

    这次比赛血崩。。。第一题一直没通过心态爆炸，然后到最后就通过第四题，分数又降了不少。。赛后回顾了一下，第一题是因为没有初始化，提交解答后的测试应该是创建了一个实例，然后测试多个样例。第二题是个树的题目，不是很难，刚开始时没看懂题目，看了函数的返回值才知道要做什么，第三题想了很久都没想出来，看了别人的代码，别人是真的厉害，写的代码真的很巧妙，第四题是比较基础的状压dp。
...]]></description><category></category></item><item><title><![CDATA[leetcode第144场周赛]]></title><link>https://blog.csdn.net/ddmike2015/article/details/95009396</link><guid>https://blog.csdn.net/ddmike2015/article/details/95009396</guid><author>ddmike2015</author><pubDate>Sun, 07 Jul 2019 20:46:07 +0800</pubDate><description><![CDATA[这次比赛也比较简单，自己的脑子还是不够快啊=，=

第一题IP 地址无效化

题目大意：

    用"[.]"代替了每个"."。

解题思路：

   比较简单的方法是直接replace替换，如果要求在原字符串上更改，则可以先统计.的个数，最终的字符串长度+2*点的个数，从字符串的最后面开始放置字符即可。（比赛时间有限，直接用了replace）

代码如下：


class...]]></description><category></category></item><item><title><![CDATA[leetcode143周赛]]></title><link>https://blog.csdn.net/ddmike2015/article/details/94410939</link><guid>https://blog.csdn.net/ddmike2015/article/details/94410939</guid><author>ddmike2015</author><pubDate>Sat, 06 Jul 2019 11:22:36 +0800</pubDate><description><![CDATA[这次的题目相对来说比较简单，终于在一个半小时内做完了。。。。

比赛地址链接：https://leetcode-cn.com/contest/weekly-contest-143/

第一题 分糖果Ⅱ

题目大意：

    一共num_people个小朋友，给小朋友们分糖果，从第一个小朋友开始分1，2，...，num_people，分到最后一个小朋友时，糖果还没分完，再从第一个小朋友开始...]]></description><category></category></item><item><title><![CDATA[udp组播测试]]></title><link>https://blog.csdn.net/ddmike2015/article/details/88744580</link><guid>https://blog.csdn.net/ddmike2015/article/details/88744580</guid><author>ddmike2015</author><pubDate>Sat, 23 Mar 2019 11:35:17 +0800</pubDate><description><![CDATA[这周主要做了udp组播的测试

服务器端代码：


//服务器发送端
#include &lt;cstdio&gt;
#include &lt;sys/types.h&gt;  
#include &lt;sys/socket.h&gt;  
#include &lt;netinet/in.h&gt;  
#include &lt;arpa/inet.h&gt;
#include &lt;net...]]></description><category></category></item><item><title><![CDATA[查内存泄漏]]></title><link>https://blog.csdn.net/ddmike2015/article/details/86504753</link><guid>https://blog.csdn.net/ddmike2015/article/details/86504753</guid><author>ddmike2015</author><pubDate>Wed, 16 Jan 2019 11:26:46 +0800</pubDate><description><![CDATA[内存泄漏的问题查得有点头疼，不过好在还是解决了

最好的方法还是打日志或者gdb看看到底内存哪里增大了。

很好用c++看linux内存的函数，原文地址：https://blog.csdn.net/thedarkfairytale/article/details/71079218


#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;
#inclu...]]></description><category></category></item><item><title><![CDATA[笔试小知识点（随手备忘录）]]></title><link>https://blog.csdn.net/ddmike2015/article/details/84034433</link><guid>https://blog.csdn.net/ddmike2015/article/details/84034433</guid><author>ddmike2015</author><pubDate>Tue, 13 Nov 2018 19:25:15 +0800</pubDate><description><![CDATA[所谓大端和小端，也就是big-endian和little-endian。大端——高尾端，小端——低尾端。]]></description><category></category></item><item><title><![CDATA[Linux下python3的安装]]></title><link>https://blog.csdn.net/ddmike2015/article/details/83830498</link><guid>https://blog.csdn.net/ddmike2015/article/details/83830498</guid><author>ddmike2015</author><pubDate>Wed, 07 Nov 2018 19:55:12 +0800</pubDate><description><![CDATA[这篇文章主要讲在一台基本上算是只装了CentOS的服务器上安装python3


yum install openssl
yum install openssl-devel -y
yum install sqlite-devel 

wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar -xvf Python-3.6.0...]]></description><category></category></item></channel></rss>