<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CRblog]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/qq_36791466</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_36791466]]></copyright><item><title><![CDATA[【Golang Mac环境安装教程】]]></title><link>https://blog.csdn.net/qq_36791466/article/details/130073063</link><guid>https://blog.csdn.net/qq_36791466/article/details/130073063</guid><author>qq_36791466</author><pubDate>Tue, 11 Apr 2023 00:19:59 +0800</pubDate><description><![CDATA[本篇教程介绍了两种在Mac M1芯片上安装Golang的方法，同时使用国内源加速下载和安装过程。第一种使用Homebrew安装Golang，这是最常见和最简单的安装方式。第二种则是从官方网站下载Golang安装包进行安装。无论哪种方式，都需要在安装完成后进行环境变量的配置，以便终端可以正确识别Golang的路径。如果你想要更好的下载体验，可以使用国内镜像加速下载Golang安装包。]]></description><category></category></item><item><title><![CDATA[使用Python对数据进行清洗]]></title><link>https://blog.csdn.net/qq_36791466/article/details/103874398</link><guid>https://blog.csdn.net/qq_36791466/article/details/103874398</guid><author>qq_36791466</author><pubDate>Tue, 07 Jan 2020 16:11:12 +0800</pubDate><description><![CDATA[读取数据，这里直接打开CSV格式的文件（可以使用execl转化）
数据清洗
1.处理异常值
将薪资范围转化为平均薪资
将公司福利处理成正常的文字格式
2.处理缺失值
将缺失值补全成其它
3.职位信息格式化
输出数据保存

...]]></description><category></category></item><item><title><![CDATA[归并排序（超详细注释）]]></title><link>https://blog.csdn.net/qq_36791466/article/details/99974205</link><guid>https://blog.csdn.net/qq_36791466/article/details/99974205</guid><author>qq_36791466</author><pubDate>Wed, 21 Aug 2019 17:04:29 +0800</pubDate><description><![CDATA[归并排序
归并排序采用的是一种分治的思想，如下图，先将要排序的元素分为两块，每个块又开始分裂，然后逐个按照特定顺序合并，合成最后我们需要的数组。
归并排序的复杂度：
时间复杂度：O(nlogn)
空间复杂度：O(n)
最好情况和最坏情况都是O(nlogn)
是一种稳定的排序方法，因为在合并的同时保证了如果相同大小，左边的会先放进去

C++代码：

#include&lt;bits/stdc++....]]></description><category></category></item><item><title><![CDATA[计蒜客 方程的解数(dfs)]]></title><link>https://blog.csdn.net/qq_36791466/article/details/98898557</link><guid>https://blog.csdn.net/qq_36791466/article/details/98898557</guid><author>qq_36791466</author><pubDate>Thu, 08 Aug 2019 23:57:24 +0800</pubDate><description><![CDATA[题目：
蒜头军在求解一个n元的高次方程
k1 * x1p2  +k2 * x2p2 +…
其中，x1,x2…xn是未知数，k1,k2…kn是系数，p1,p2…pn是指数。方程中所有数都一定是整数。
假设未知数1&lt;=xi&lt;=M,i=1…n。你能帮蒜头军就算出这个方程的整数解个数吗？
输入格式：
第一行：
1&lt;=n&lt;=4;
第二行：
1&lt;=M&lt;=150；
第三到最后...]]></description><category></category></item><item><title><![CDATA[计蒜客 买书(又是dfs)]]></title><link>https://blog.csdn.net/qq_36791466/article/details/98680176</link><guid>https://blog.csdn.net/qq_36791466/article/details/98680176</guid><author>qq_36791466</author><pubDate>Wed, 07 Aug 2019 00:20:57 +0800</pubDate><description><![CDATA[七夕快乐啊，大半夜的还在这刷题QAQ…
不多说了，上正题
题目：
蒜头君去书店买书，他有 m元钱,书店里面有n本书，每本书的价格为Pi元。蒜头君很爱学习，想把身上钱都用来买书，并且刚好买k本书。请帮蒜头军计算他是否能刚好偶用m元买k 本书。
输入格式
第一行分别代表m,n,k（1&lt;=m&lt;=100000000）(1&lt;=n&lt;=30)(1&lt;=k&lt;=min(8,n))
...]]></description><category></category></item><item><title><![CDATA[计蒜客 踏青(dfs)]]></title><link>https://blog.csdn.net/qq_36791466/article/details/98475937</link><guid>https://blog.csdn.net/qq_36791466/article/details/98475937</guid><author>qq_36791466</author><pubDate>Sun, 04 Aug 2019 23:05:45 +0800</pubDate><description><![CDATA[题目：
蒜头君和他的朋友周末相约去召唤师峡谷踏青。他们发现召唤师峡谷的地图是由一块一块格子组成的，有的格子上是草丛，有的是空地。草丛通过上下左右 4 个方向扩展其他草丛形成一片草地，任何一片草地中的格子都是草丛，并且所有格子之间都能通过上下左右连通。如果用’G’代表草丛，’.'代表空地，下面的峡谷中有 2 片草地。
GG..
..GG

处在同一个草地的2个人可以相互看到，空地看不到草地里面的人。...]]></description><category></category></item><item><title><![CDATA[计蒜客 走迷宫(dfs)]]></title><link>https://blog.csdn.net/qq_36791466/article/details/98252196</link><guid>https://blog.csdn.net/qq_36791466/article/details/98252196</guid><author>qq_36791466</author><pubDate>Fri, 02 Aug 2019 23:02:40 +0800</pubDate><description><![CDATA[题目：
给一个n行m列的2维迷宫,‘S’表示迷宫的起点，‘T’表示迷宫的终点，’#‘表示不能通过的点，’.‘表示可以通过的点。现在要求从’S’出发走到’T’,每次只能上下左右走动，并且只能进入能通过的点，每个点只能通过一次，现在要求你求出有多少种通过迷宫的方案。
输入格式：
第一行：n,m(1&lt;=n,m&lt;=10)表示迷宫的大小
接下来n行字符串表示迷宫

输出格式：
输入通过迷宫的方法...]]></description><category></category></item><item><title><![CDATA[++i 和 i++的效率对比]]></title><link>https://blog.csdn.net/qq_36791466/article/details/98119222</link><guid>https://blog.csdn.net/qq_36791466/article/details/98119222</guid><author>qq_36791466</author><pubDate>Thu, 01 Aug 2019 23:33:39 +0800</pubDate><description><![CDATA[1.++i的实现过程
int &amp; int::operator++()
{
*this+=1;
return *this;
}
2.i++的实现过程
const int int::operator(int)
{
int tmp = *this;
*this+=1;
return tmp;
}
这里我们可以看出++i的实现是this自加然后返回，而i++的实现则是先用一个变量保存i的原址，在进...]]></description><category></category></item><item><title><![CDATA[leetcode-最小栈]]></title><link>https://blog.csdn.net/qq_36791466/article/details/97389089</link><guid>https://blog.csdn.net/qq_36791466/article/details/97389089</guid><author>qq_36791466</author><pubDate>Fri, 26 Jul 2019 14:33:24 +0800</pubDate><description><![CDATA[题目链接：
https://leetcode-cn.com/explore/interview/card/top-interview-quesitons-in-2018/266/heap-stack-queue/1153/

因为栈的先进后出特性，所以我们需要一直将最小值放在栈顶，然而还要维持正常的出进栈，用一个栈完成这样的操作复杂度会在O(n)以上，所以我的思路是用两个栈来实现，一个用来保存正常...]]></description><category></category></item><item><title><![CDATA[Socket---UDP编程]]></title><link>https://blog.csdn.net/qq_36791466/article/details/93869286</link><guid>https://blog.csdn.net/qq_36791466/article/details/93869286</guid><author>qq_36791466</author><pubDate>Tue, 02 Jul 2019 14:51:54 +0800</pubDate><description><![CDATA[socket常见API
    //创建socket文件描述符(TCP/UDP,客户端 + 服务器)
    int socket(int domain,int type,int protocol)
    //绑定端口号(TCP/UDP,服务器)
    int bind(int socket , const struct sockaddr *address,
                 ...]]></description><category></category></item><item><title><![CDATA[Linux网络基础1]]></title><link>https://blog.csdn.net/qq_36791466/article/details/93864496</link><guid>https://blog.csdn.net/qq_36791466/article/details/93864496</guid><author>qq_36791466</author><pubDate>Thu, 27 Jun 2019 13:12:12 +0800</pubDate><description><![CDATA[协议
协议就是网路协议，代表通信计算机双方必须遵守的一种约定

协议分层

分层的原因：网络协议比较复杂，需要划分成简单的多层
分层的好处：

拆分成多个层相当于拆分成多个模块。同时降低了整个系统的耦合程度
根据实际需要，随时可以替换其中的某一层协议



OSI七层模型
按照服务/接口/协议对整个复杂的网络通信环境进行层次划分，形成标准，实现网络互联
应用层-表示层-会话层-传输层-网络层-链路...]]></description><category></category></item><item><title><![CDATA[牛客-手套]]></title><link>https://blog.csdn.net/qq_36791466/article/details/91068005</link><guid>https://blog.csdn.net/qq_36791466/article/details/91068005</guid><author>qq_36791466</author><pubDate>Fri, 07 Jun 2019 00:45:46 +0800</pubDate><description><![CDATA[在地下室里放着n种颜色的手套，手套分左右手，但是每种颜色的左右手手套个数不一定相同。A先生现在要出门，所以他要去地下室选手套。但是昏暗的灯光让他无法分辨手套的颜色，只能分辨出左右手。所以他会多拿一些手套，然后选出一双颜色相同的左右手手套。现在的问题是，他至少要拿多少只手套(左手加右手)，才能保证一定能选出一双颜色相同的手套。
给定颜色种数n(1≤n≤13),同时给定两个长度为n的数组left,ri...]]></description><category></category></item><item><title><![CDATA[生产者消费者关系模型实现]]></title><link>https://blog.csdn.net/qq_36791466/article/details/90714031</link><guid>https://blog.csdn.net/qq_36791466/article/details/90714031</guid><author>qq_36791466</author><pubDate>Fri, 31 May 2019 12:16:42 +0800</pubDate><description><![CDATA[生产者与消费者模型
实现：

1.实现线程安全的队列，对外提供线程安全的数据入队和出队操作(加锁)
2.创建线程，分别作为生产者与消费者数据入队或数据出队


#include&lt;iostream&gt;
#include&lt;queue&gt;
#include&lt;pthread.h&gt;
using namespace std;

#define MAX_QUEUE 10     ...]]></description><category></category></item><item><title><![CDATA[牛客-最小公倍数]]></title><link>https://blog.csdn.net/qq_36791466/article/details/90676763</link><guid>https://blog.csdn.net/qq_36791466/article/details/90676763</guid><author>qq_36791466</author><pubDate>Wed, 29 May 2019 19:10:43 +0800</pubDate><description><![CDATA[给出两个数，求两个数的最小公倍数
思路：先用辗转相除法将最大公约数求出，然后利用公式a*b = gcd(a,b)*lcm(a,b)；求出最小公倍数
#include&lt;bits/stdc++.h&gt;
using namespace std;

int gcd(int a,int b)  //最大公约数（辗转相除）
{
		return b==0?a:gcd(b,a%b);
}
int lc...]]></description><category></category></item><item><title><![CDATA[牛客-两种排序方法]]></title><link>https://blog.csdn.net/qq_36791466/article/details/90675772</link><guid>https://blog.csdn.net/qq_36791466/article/details/90675772</guid><author>qq_36791466</author><pubDate>Wed, 29 May 2019 17:57:33 +0800</pubDate><description><![CDATA[考拉有n个字符串字符串，任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法：

1.根据字符串的字典序排序。例如：**
"car" &lt; “carriage” &lt; “cats” &lt; "doggies &lt; "koala"
2.根据字符串的长度排序。例如：
“car” &lt; “cats” &lt; “koala” &lt; “doggies” &lt; “ca...]]></description><category></category></item><item><title><![CDATA[浅谈linux下task_struct结构体]]></title><link>https://blog.csdn.net/qq_36791466/article/details/90214036</link><guid>https://blog.csdn.net/qq_36791466/article/details/90214036</guid><author>qq_36791466</author><pubDate>Tue, 14 May 2019 20:11:30 +0800</pubDate><description><![CDATA[首先要说以下PCB（进程控制块）
进程控制块是操作系统核心的一种数据结构，主要用来表示进程的状态，它能够使程序成为一个能够独立运行的基本单位，并且可以并发执行的进程。也就是说，系统是根据PCB来对并发执行的进程进行控制和管理。PCB中通常存放着操作系统用于描述进程的情况和控制进程运行的全部信息。
PCB中包含的信息有8大部分：

标识符：
状态：
优先级：
程序计数器：
内存指针：
上下文数据：...]]></description><category></category></item><item><title><![CDATA[linux下task_struct结构体的位置及内容]]></title><link>https://blog.csdn.net/qq_36791466/article/details/90212212</link><guid>https://blog.csdn.net/qq_36791466/article/details/90212212</guid><author>qq_36791466</author><pubDate>Tue, 14 May 2019 18:11:59 +0800</pubDate><description><![CDATA[首先我们要知道这个结构体的定义位置是在内核中的sched.h中。
而不是很多博客说的usr子文件夹下，这里附上地址：

/usr/src/kernels/3.10.0-514.21.1.el7.x86_64/include/linux
（3.10.0-514.21.1.el7.x86_64是内核版本，根据大家自己的电脑进行查看，  因为这个文件夹只有一个，所以也不用刻意去分辨）
要查看内容可直接用...]]></description><category></category></item><item><title><![CDATA[Linux进程信号]]></title><link>https://blog.csdn.net/qq_36791466/article/details/90210855</link><guid>https://blog.csdn.net/qq_36791466/article/details/90210855</guid><author>qq_36791466</author><pubDate>Tue, 14 May 2019 17:17:01 +0800</pubDate><description><![CDATA[信号


信号是什么？

是一个软件中断，通知进程发生了某个事件，打断当前操作去处理这个事件
信号有很多种类，每个信号代表一个事件



信号种类

62种
1~31:非实时信号（继承自UNIX）
34~64：实时信号(Linux补充)




生命周期


信号的产生：

硬件：ctrl + c(SIGINT)   ctrl + | （）  ctrl + z(SIGTSTP)
软件：

kill...]]></description><category></category></item><item><title><![CDATA[Linux下的调试利器--GDB]]></title><link>https://blog.csdn.net/qq_36791466/article/details/90046517</link><guid>https://blog.csdn.net/qq_36791466/article/details/90046517</guid><author>qq_36791466</author><pubDate>Thu, 09 May 2019 19:53:31 +0800</pubDate><description><![CDATA[简介：

   gdb是GUN组织开发的Linux下的调试利器。一般用于调试C/C++程序。

GDB主要有以下4个功能：

    1、启动你的程序，可以按照你的自定义的要求随心所欲的运行程序。

    2、可让被调试的程序在你所指定的调置的断点处停住。

    3、当程序被停住时，可以检查此时你的程序中所发生的事。

    4、你可以改变你的程序，...]]></description><category></category></item><item><title><![CDATA[C++ 类和对象（类的作用域，对象的两种实例化，this指针）]]></title><link>https://blog.csdn.net/qq_36791466/article/details/90029624</link><guid>https://blog.csdn.net/qq_36791466/article/details/90029624</guid><author>qq_36791466</author><pubDate>Thu, 09 May 2019 13:00:08 +0800</pubDate><description><![CDATA[封装：
类的作用域
对象的两种实例化：栈上和堆上
this指针的特性]]></description><category></category></item></channel></rss>