<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[VegetableGirl的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/VegetableGirl</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; VegetableGirl]]></copyright><item><title><![CDATA[win10安装ElasticSearch7.12.0和Kibana7.12.0教程]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/115857655</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/115857655</guid><author>VegetableGirl</author><pubDate>Mon, 19 Apr 2021 09:47:47 +0800</pubDate><description><![CDATA[查询官网：
https://www.elastic.co/cn/downloads/elasticsearch
选择自己需要的版本进行下载，有时候会下载连接失败，我在此为小伙伴们分享网盘连接：
链接：https://pan.baidu.com/s/1QVnxFU4dUBOv3MiV9mqiwQ
提取码：eari
Elasticsearch是一个实时的分布式存储，搜索和分析引擎。它可以用于许多目的，但是它擅长的一种环境是索引半结构化数据流，例如日志或解码的网络数据包。
Kibana是一个旨在与Elastics]]></description><category></category></item><item><title><![CDATA[LeetCode61（力扣61）旋转链表 C++详细]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/112791965</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/112791965</guid><author>VegetableGirl</author><pubDate>Mon, 18 Jan 2021 18:58:35 +0800</pubDate><description><![CDATA[61.旋转链表
题目描述
给定一个链表，旋转链表，将链表每个节点向右移动 k 个位置，其中 k 是非负数。
示例 1:

输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL, k = 2
输出: 4-&gt;5-&gt;1-&gt;2-&gt;3-&gt;NULL
解释:
向右旋转 1 步: 5-&gt;1-&gt;2-&gt;3-&gt;4-&gt;NULL
向右旋转 2 步: 4-&gt;5-&gt;1-&gt;2-&gt;3-&gt;NULL

示例 2:

输入: 0-&g]]></description><category></category></item><item><title><![CDATA[删除链表的倒数第k个节点（C++）详细]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/112751742</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/112751742</guid><author>VegetableGirl</author><pubDate>Sun, 17 Jan 2021 16:42:23 +0800</pubDate><description><![CDATA[删除链表的倒数第k个节点
思想及算法
因为要删除倒数第k个节点，因此要知道是的正序的第几个，所以可以先遍历一遍链表获得链表的长度。

代码
#include&lt;iostream&gt;
using namespace std;

struct list {
	int val;
	list* next;
	list(int x) :val(x), next(nullptr) {}
};

list* insert(list* head, int x) {
	list* p = head;
	while (]]></description><category></category></item><item><title><![CDATA[逆置/反转单链表（C++）详细]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/112750014</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/112750014</guid><author>VegetableGirl</author><pubDate>Sun, 17 Jan 2021 16:11:48 +0800</pubDate><description><![CDATA[逆置/反转单链表
遗留的问题：
我想新创建一个链表来实现单链表的反转，目前还没有实现出来

思想及算法


代码
#include&lt;iostream&gt;
using namespace std;

struct list {
	int val;
	list* next;
	list(int x):val(x),next(nullptr){}
};

list* insert(list* head,int x) {
	list* p = head;
	while (p-&gt;next)
	{
		]]></description><category></category></item><item><title><![CDATA[在无头单链表的一个节点前插入一个节点（不能遍历链表） （C++）详细]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/112725184</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/112725184</guid><author>VegetableGirl</author><pubDate>Sat, 16 Jan 2021 21:28:40 +0800</pubDate><description><![CDATA[算法思想


代码
#include&lt;iostream&gt;
using namespace std;

struct list
{
	int val;
	list* next;
	list(int x):val(x),next(nullptr){}
};


list* insert(list* head,int x) {
	list* p = head;
	while (p-&gt;next)
	{
		p = p-&gt;next;
	}
	list* t = new list(x);
	p-]]></description><category></category></item><item><title><![CDATA[删除一个无头单链表的非尾节点（不能遍历链表） （C++）详细]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/112724426</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/112724426</guid><author>VegetableGirl</author><pubDate>Sat, 16 Jan 2021 20:46:02 +0800</pubDate><description><![CDATA[删除一个无头单链表的非尾节点（不能遍历链表）
疑问：
为什么要说明是无头单链表？
——因为如果是带有头节点的单链表，假设要删除的是第一个节点，头节点是没有数据域的只有指针域，因此要想使用以下的方法就不能实现。

算法思想


我的代码
#include&lt;iostream&gt;
using namespace std;

struct list
{
	int val;
	list* next;
	list(int x) :val(x), next(nullptr){}
};

list* insert]]></description><category></category></item><item><title><![CDATA[查找链表的中间节点，只能遍历一次数组（C++）详细]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/112683417</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/112683417</guid><author>VegetableGirl</author><pubDate>Fri, 15 Jan 2021 18:15:21 +0800</pubDate><description><![CDATA[查找链表的中间节点，只能遍历一次数组
方法及思想
因为要求只能遍历一次链表，那么我们就可以边遍历边查找中间的节点。每遍历一步，就找一次中间节点，然后移动只想中间节点的指针。此处借助链表的长度来实现这个解法，我假设在链表长度为偶数时，中间节点为length/2取下取整（参考二分法）

代码
#include&lt;iostream&gt;
using namespace std;

struct list {
	int val;
	list* next;
	list(int x) :val(x), next(]]></description><category></category></item><item><title><![CDATA[从尾到头打印单链表（C++）详细]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/112682886</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/112682886</guid><author>VegetableGirl</author><pubDate>Fri, 15 Jan 2021 18:07:55 +0800</pubDate><description><![CDATA[1.从尾到头打印单链表
遗留的问题：
在递归反向打印时，尾巴的-&gt;怎么处理掉?

方法及思想：
正序打印
方法一:正序遍历，若当前节点的下一个节点不为nullptr（p-&gt;next!=nullptr），那么p继续往后移。直到移到最后一个节点为止
方法二：使用递归，直到递归语句return中head传为head-&gt;next（此时在最后一次递归时，虽然下一个为空但是我们不知道，我们还会继续对其head-&gt;next），因此结束条件是：head==nullptr。注意cout输出语句的顺序
]]></description><category></category></item><item><title><![CDATA[CentOS8.3安装时报错：  DFN error：Error in POSTTRANS scriptlet in rpm package kernel-core]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/112591250</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/112591250</guid><author>VegetableGirl</author><pubDate>Wed, 13 Jan 2021 21:05:02 +0800</pubDate><description><![CDATA[CentOS8.3安装时报错：
DFN error：Error in POSTTRANS scriptlet in rpm package kernel-core
解决办法：
重新安装，在手动分区时，将/boot设置为300MB


]]></description><category></category></item><item><title><![CDATA[LeetCode136(力扣136)：只出现一次的数字 （C++）]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111244406</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111244406</guid><author>VegetableGirl</author><pubDate>Wed, 16 Dec 2020 01:42:33 +0800</pubDate><description><![CDATA[136.只出现一次的数字
给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
说明：
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗？
示例 1:
输入: [2,2,1]
输出: 1

示例 2:
输入: [4,1,2,1,2]
输出: 4

我的题解（错误错误错误）
class Solution {
public:
    int singleNumber(vector&lt;int&gt;&amp; nums) {
        so]]></description><category></category></item><item><title><![CDATA[LeetCode541（力扣541）：反转字符串Ⅱ(C++)]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111207041</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111207041</guid><author>VegetableGirl</author><pubDate>Tue, 15 Dec 2020 13:52:54 +0800</pubDate><description><![CDATA[541.反转字符串Ⅱ
给定一个字符串 s 和一个整数 k，你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。

如果剩余字符少于 k 个，则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个，则反转前 k 个字符，其余字符保持原样。

示例:
输入: s = "abcdefg", k = 2
输出: "bacdfeg"

提示：
该字符串只包含小写英文字母。
给定字符串的长度和 k 在 [1, 10000] 范围内。
我的题解
class Solution {
publi]]></description><category></category></item><item><title><![CDATA[LeetCode334(力扣334):反转字符串（C++）]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111203766</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111203766</guid><author>VegetableGirl</author><pubDate>Tue, 15 Dec 2020 13:23:37 +0800</pubDate><description><![CDATA[344 反转字符串
编写一个函数，其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间，你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。
示例 1：
输入：["h","e","l","l","o"]
输出：["o","l","l","e","h"]

示例 2：
输入：["H","a","n","n","a","h"]
输出：["h","a","n","n","a","H]]></description><category></category></item><item><title><![CDATA[cpp初阶--Lesson 04 类和对象（下）]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111149282</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111149282</guid><author>VegetableGirl</author><pubDate>Mon, 14 Dec 2020 08:36:33 +0800</pubDate><description><![CDATA[Lesson 04 类和对象（下）
【本节目标】
1. 再谈构造函数
2. C++11 的成员初始化新玩法。
3. 友元
4. static成员
5. 内部类
6. 再次理解封装
虽然构造函数调用之后，对象中已经有了一个初始值，但是不能将其称作为类对象成员的初始化，构造函数体中的语句只能将其称作为赋初值，而不能称作初始化。因为初始化只能初始化一次，而构造函数体内可以多次赋值。（这句话可以这样理解：就像 int a=1；声明一个a变量且初始化为1，而在程序之后再也不用对a初始化。而构造函数是一个函数，他可以多]]></description><category></category></item><item><title><![CDATA[cpp初阶——Lesson03 类与对象（中）]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111148937</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111148937</guid><author>VegetableGirl</author><pubDate>Mon, 14 Dec 2020 01:48:14 +0800</pubDate><description><![CDATA[Lesson 03类与对象（中）
【本节目标】
1. 类的6个默认成员函数
2. 构造函数
3. 析构函数
4. 拷贝构造函数
5. 赋值操作符重载
6. 默认拷贝构造与赋值运算符重载的问题
7.const成员函数
8.取地址及const取地址操作符重载
1. 类的6个默认成员函数

如果一个类是空类，那它也有6个默认的成员函数。
2.构造函数
构造函数是一个特殊的成员函数，名字与类名相同,创建类类型对象时由编译器自动调用，保证每个数据成员都有 一个合适的初始值，并且在对象的生命周期内只调用一次。
2.2 ]]></description><category></category></item><item><title><![CDATA[cpp面试题合集]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111146567</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111146567</guid><author>VegetableGirl</author><pubDate>Sun, 13 Dec 2020 22:12:32 +0800</pubDate><description><![CDATA[面试题合集

下面两个函数能形成函数重载吗？有问题吗或者什么情况下会出问题？

void TestFunc(int a = 10) {
 	cout&lt;&lt;"void TestFunc(int)"&lt;&lt;endl; 
}
void TestFunc(int a) {
	 cout&lt;&lt;"void TestFunc(int)"&lt;&lt;endl; 
}

我的答案：
不能形参函数重载。函数重载在同一作用域下，函数同名而参数列表不同。而参数列表中形参列表(参数个数 或 类型 或 ]]></description><category></category></item><item><title><![CDATA[cpp初阶--Lesson 02--类与对象（上）]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111144521</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111144521</guid><author>VegetableGirl</author><pubDate>Sun, 13 Dec 2020 20:15:34 +0800</pubDate><description><![CDATA[Lesson 02类与对象（上）
【本节目标】
1.类与对象的初步认知
2.类的引入
3.类的定义
4.类的作用域
5.类的实例化
6.类的访问限定符及封装
7.类的对象大小的计算
8.类成员函数的this指针
1.类与对象的初步认知
C语言是面向过程的，关注的是过程，分析出求解问题的步骤，通过函数调用逐步解决问题。
C++是基于面向对象的，关注的是对象，将一件事情拆分成不同的对象，靠对象之间的交互完成。
2.类的引入
**C语言中，结构体中只能定义变量，在C++中，结构体内不仅可以定义变量，也可以定义函数]]></description><category></category></item><item><title><![CDATA[cpp初阶—Lesson01—C++入门]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111142288</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111142288</guid><author>VegetableGirl</author><pubDate>Sun, 13 Dec 2020 18:25:48 +0800</pubDate><description><![CDATA[Lesson01–C++入门
2.命名空间
在C/C++中，变量、函数和后面要学到的类都是大量存在的，这些变量、函数和类的名称将都存在于全局作
用域中，可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化，以避免命名冲突或名字
污染，namespace关键字的出现就是针对这种问题的。
2.1 命名空间定义
定义命名空间，需要使用到namespace关键字，后面跟命名空间的名字，然**后接一对{}**即可，{}中即为命名空间的成员。
//1. 普通的命名空间
namespace N1 // N1为]]></description><category></category></item><item><title><![CDATA[cpp初级--Lesson00--前言]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111122472</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111122472</guid><author>VegetableGirl</author><pubDate>Sun, 13 Dec 2020 15:41:41 +0800</pubDate><description><![CDATA[Lesson00–前言
1. 什么是C++
20世纪80年代， 计算机界提出了OOP(objectoriented programming：面向对象)思想
C++是基于C语言而产生的，它既可以进行C语言的过程化程序设计，又可以进行以抽象数据类型为特点的基于对象的程序设计，还可以进行面向对象的程序设计。
2.C++发展史

3.C++的重要性
3.3.3 面试题
【某学长腾讯面试】
\1. 讲解一下你的项目。 【项目】
\2. 讲一下epoll和select的区别。【网络】
\3. epoll的ET和LT。【]]></description><category></category></item><item><title><![CDATA[LeetCode101(力扣101)：对称二叉树  C++]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/111064630</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/111064630</guid><author>VegetableGirl</author><pubDate>Sat, 12 Dec 2020 15:41:31 +0800</pubDate><description><![CDATA[101.对称二叉树
给定一个二叉树，检查它是否是镜像对称的。
例如，二叉树 [1,2,2,3,4,4,3] 是对称的。
    1
   / \
  2   2
 / \ / \
3  4 4  3

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
    1
   / \
  2   2
   \   \
   3    3

进阶：
你可以运用递归和迭代两种方法解决这个问题吗？
我提交的代码
class Solution {
public:
    bool isDCtre]]></description><category></category></item><item><title><![CDATA[LeetCode485（力扣485）最大连续1的个数  C++ 使用C++11for]]></title><link>https://blog.youkuaiyun.com/VegetableGirl/article/details/110959525</link><guid>https://blog.youkuaiyun.com/VegetableGirl/article/details/110959525</guid><author>VegetableGirl</author><pubDate>Thu, 10 Dec 2020 19:16:37 +0800</pubDate><description><![CDATA[485 最大连续1的个数
给定一个二进制数组， 计算其中最大连续1的个数。
示例 1:
输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1，所以最大连续1的个数是 3.

注意：
输入的数组只包含 0 和1。
输入数组的长度是正整数，且不超过 10,000。

我提交的代码
class Solution {
public:
    int findMaxConsecutiveOnes(vector&lt;int&gt;&amp; nums) {
        int ]]></description><category></category></item></channel></rss>