<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Fizz6018的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Fizz6018</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Fizz6018]]></copyright><item><title><![CDATA[c++实现---二叉树先序、中序、后序遍历的递归与非递归实现以及层次遍历]]></title><link>https://blog.csdn.net/Fizz6018/article/details/108367927</link><guid>https://blog.csdn.net/Fizz6018/article/details/108367927</guid><author>Fizz6018</author><pubDate>Wed, 02 Sep 2020 18:47:45 +0800</pubDate><description><![CDATA[二叉树先序、中序、后序遍历的递归与非递归实现以及层次遍历。
#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;stack&gt;
#include&lt;queue&gt;
using namespace std;
vector&lt;vector&lt;int&gt;&gt; res;
vector&lt;int&gt; help;
 struct TreeNode {
	int val;
	struct TreeNode *left;]]></description><category></category></item><item><title><![CDATA[c++实现---链表之重排链表]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107925924</link><guid>https://blog.csdn.net/Fizz6018/article/details/107925924</guid><author>Fizz6018</author><pubDate>Tue, 11 Aug 2020 01:00:26 +0800</pubDate><description><![CDATA[题目描述：
将给定的单链表 L： L0​→L1​→…→Ln−1​→Ln​
重新排序为：L0​→Ln​→L1​→Ln−1​→L2​→Ln−2​→…
要求使用原地算法，不能改变节点内部的值，需要对实际的节点进行交换。
例如：
对于给定的单链表{1,2,3,4}，将其重新排序为{1,4,2,3}.
思路：
1.快慢指针寻找链表中间节点；
2.原地逆序后半段链表；
3.合并顺序的前半段和逆序的后半段，完成链表重排序。
/**
 * Definition for singly-linked list.
 * stru]]></description><category></category></item><item><title><![CDATA[c++实现---动态规划之最短路径和问题]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107724763</link><guid>https://blog.csdn.net/Fizz6018/article/details/107724763</guid><author>Fizz6018</author><pubDate>Sat, 01 Aug 2020 00:40:46 +0800</pubDate><description><![CDATA[题目描述
给定一个由非负整数填充的m x n的二维数组，现在要从二维数组的左上角走到右下角，请找出路径上的所有数字之和最小的路径。
注意：你每次只能向下或向右移动。
输入
[[1,2],[5,6],[1,1]]
输出
8
方法：二维dp，初始化第一行和第一列，在此基础上去求解
class Solution
{
public:
    int minPathSum(vector&lt;vector&lt;int&gt; &gt; &amp;grid)
    {
        int m=grid.size]]></description><category></category></item><item><title><![CDATA[c++实现---敏感词替换]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107511600</link><guid>https://blog.csdn.net/Fizz6018/article/details/107511600</guid><author>Fizz6018</author><pubDate>Wed, 22 Jul 2020 13:33:46 +0800</pubDate><description><![CDATA[题目描述							
大部分论坛、网站等，为了方便管理，都进行了关于敏感词的设定。
在多数网站，敏感词一般是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明语，也有一些网站根据自身实际情况，设定一些只适用于本网站的特殊敏感词。比如，当你发贴的时候带有某些事先设定的词时，这个贴是不能发出的。或者这个词被自动替换为星号 (*)，或者说是被和谐掉了。请注意敏感词只有小写字母，文本如果中的大写字母当做小写字母处理，出现敏感单词，即使作为子串出现也要被和谐，多个子串重叠他们都要被和谐。
例如当敏感词是gre，e]]></description><category></category></item><item><title><![CDATA[c++实现---华为机试-求最小公倍数]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107478197</link><guid>https://blog.csdn.net/Fizz6018/article/details/107478197</guid><author>Fizz6018</author><pubDate>Tue, 21 Jul 2020 00:07:16 +0800</pubDate><description><![CDATA[题目描述：
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值，设计一个算法，求输入A和B的最小公倍数。
输入描述:输入两个正整数A和B。
输出描述:输出A和B的最小公倍数。
示例1输入5 7
输出35
先求最大公约数，再求最小公倍数
**求最小公倍数算法：**最小公倍数=两整数的乘积÷最大公约数
**求最大公约数算法：**辗转相除法有两整数a和b：
① a%b得余数c
② 若c=0，则b即为两数的最大公约数
③ 若c≠0，则a=b，b=c，再回去执行①
例如求27和15的最大公约数过程为]]></description><category></category></item><item><title><![CDATA[c++实现---公共子串]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107372283</link><guid>https://blog.csdn.net/Fizz6018/article/details/107372283</guid><author>Fizz6018</author><pubDate>Wed, 15 Jul 2020 22:48:30 +0800</pubDate><description><![CDATA[题目：
计算两个字符串的最大公共字串的长度，字符不区分大小写
两个字符串
输出描述:
输出一个整数
示例1
输入
asdfas
werasdfaswer
输出
6
方法一：动态规划
#include&lt;bits/stdc++.h&gt;
using namespace std;
int main(){
    string a,b;
    while(cin&gt;&gt;a&gt;&gt;b){
        int m=a.size(),n=b.size();
        transform]]></description><category></category></item><item><title><![CDATA[c++实现---远亲不如近邻]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107327593</link><guid>https://blog.csdn.net/Fizz6018/article/details/107327593</guid><author>Fizz6018</author><pubDate>Mon, 13 Jul 2020 23:13:49 +0800</pubDate><description><![CDATA[题目描述
牛牛最近搬到了一座新的城镇，这个城镇可以看成是一个一维的坐标系。城镇上有n个居民，第i个居民的位置为ai​。现在牛牛有m个搬家方案，在第i个方案中他会搬到位置xi​。
俗话说的好，远亲不如近邻。现在牛牛想知道，对于每个搬家方案，搬家后与最近的居民的距离为多少。
示例1
输入
3,2,[2,4,7],[5,8]
输出
[1,1]
说明
第一个方案搬到位置5，与5最近的居民在位置4，距离为1.
第二个方案搬到位置8，与8最近的居民在位置7，距离为1
备注:
1≤n,m≤100000,0≤∣ai​∣,∣]]></description><category></category></item><item><title><![CDATA[c++实现---完全数计算]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107323891</link><guid>https://blog.csdn.net/Fizz6018/article/details/107323891</guid><author>Fizz6018</author><pubDate>Mon, 13 Jul 2020 19:53:59 +0800</pubDate><description><![CDATA[题目描述
完全数（Perfect number），又称完美数或完备数，是一些特殊的自然数。
它所有的真因子（即除了自身以外的约数）的和（即因子函数），恰好等于它本身。
例如：28，它有约数1、2、4、7、14、28，除去它本身28外，其余5个数相加，1+2+4+7+14=28。
给定函数count(int n),用于计算n以内(含n)完全数的个数。计算范围, 0 &lt; n &lt;= 500000
返回n以内完全数的个数。 异常情况返回-1
输入描述:
输入一个数字
输出描述:
输出完全数的个数
示例1]]></description><category></category></item><item><title><![CDATA[c++实现---十六进制转化为十进制]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107323868</link><guid>https://blog.csdn.net/Fizz6018/article/details/107323868</guid><author>Fizz6018</author><pubDate>Mon, 13 Jul 2020 19:51:37 +0800</pubDate><description><![CDATA[题目：
写出一个程序，接受一个十六进制的数，输出该数值的十进制表示。（多组同时输入 ）
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
代码：
#include&lt;bits/stdc++.h&gt;
using namespace std;
int main(){
    string s;
    while(cin&gt;&gt;s){//多组输入
        int bit=0;
        int ans=0;
   ]]></description><category></category></item><item><title><![CDATA[c++实现---孩子们的游戏（出圈问题）]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107302882</link><guid>https://blog.csdn.net/Fizz6018/article/details/107302882</guid><author>Fizz6018</author><pubDate>Sun, 12 Jul 2020 18:06:33 +0800</pubDate><description><![CDATA[题目描述
每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一个小朋友,可以不用表演,并且拿到牛客名贵的“名侦探柯南”典藏版(名额有限哦!!_)。请你试着想下,哪个小朋友会得]]></description><category></category></item><item><title><![CDATA[c++实现---万万没想到之抓捕孔连顺]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107288339</link><guid>https://blog.csdn.net/Fizz6018/article/details/107288339</guid><author>Fizz6018</author><pubDate>Sat, 11 Jul 2020 17:47:25 +0800</pubDate><description><![CDATA[题目：
我叫王大锤，是一名特工。我刚刚接到任务：在字节跳动大街进行埋伏，抓捕恐怖分子孔连顺。和我一起行动的还有另外两名特工，我提议

我们在字节跳动大街的N个建筑中选定3个埋伏地点。
为了相互照应，我们决定相距最远的两名特工间的距离不超过D。
我特喵是个天才! 经过精密的计算，我们从X种可行的埋伏方案中选择了一种。这个方案万无一失，颤抖吧，孔连顺！
……
万万没想到，计划还是失败了，孔连顺化妆成小龙女，混在cosplay的队伍中逃出了字节跳动大街。只怪他的伪装太成功了，就是杨过本人来了也发现不了的！
请听题]]></description><category></category></item><item><title><![CDATA[c++实现---万万没想到之聪明的编辑（拼写纠错）]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107286291</link><guid>https://blog.csdn.net/Fizz6018/article/details/107286291</guid><author>Fizz6018</author><pubDate>Sat, 11 Jul 2020 16:06:24 +0800</pubDate><description><![CDATA[题目：
我叫王大锤，是一家出版社的编辑。我负责校对投稿来的英文稿件，这份工作非常烦人，因为每天都要去修正无数的拼写错误。但是，优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径：

三个同样的字母连在一起，一定是拼写错误，去掉一个的就好啦：比如 helllo -&gt; hello
两对一样的字母（AABB型）连在一起，一定是拼写错误，去掉第二对的一个字母就好啦：比如 helloo -&gt; hello
上面的规则优先“从左到右”匹配，即如果是AABBCC，虽然AABB和BBCC都是错误拼写]]></description><category></category></item><item><title><![CDATA[c++实现---滑动窗口的最大值]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107238128</link><guid>https://blog.csdn.net/Fizz6018/article/details/107238128</guid><author>Fizz6018</author><pubDate>Thu, 09 Jul 2020 21:25:11 +0800</pubDate><description><![CDATA[题目：
给定一个数组和滑动窗口的大小，找出所有滑动窗口里数值的最大值。例如，如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3，那么一共存在6个滑动窗口，他们的最大值分别为{4,4,6,6,6,5}； 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个： {[2,3,4],2,6,2,5,1}， {2,[3,4,2],6,2,5,1}， {2,3,[4,2,6],2,5,1}， {2,3,4,[2,6,2],5,1}， {2,3,4,2,[6,2,5],1}， {2,3,4,2,6]]></description><category></category></item><item><title><![CDATA[c++实现---左旋转字符串]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107233711</link><guid>https://blog.csdn.net/Fizz6018/article/details/107233711</guid><author>Fizz6018</author><pubDate>Thu, 09 Jul 2020 17:26:25 +0800</pubDate><description><![CDATA[题目
汇编语言中有一种移位指令叫做循环左移（ROL），现在有个简单的任务，就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S，请你把其循环左移K位后的序列输出。例如，字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果，即“XYZdefabc”。是不是很简单？OK，搞定它！
**题意抽象：**给定一字符串str，将str的[0…n)子串移动到[n…len)子串的后面。
方法一：遍历数组
代码如下：
class Solution {
public:
    string LeftRota]]></description><category></category></item><item><title><![CDATA[c++实现---和为s的连续正数序列]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107216662</link><guid>https://blog.csdn.net/Fizz6018/article/details/107216662</guid><author>Fizz6018</author><pubDate>Wed, 08 Jul 2020 22:29:53 +0800</pubDate><description><![CDATA[题目：
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
方法一：暴力方法
求和为sum的连续子序列，可用暴力方法，
算法步骤：
用指针i枚举目标序列的左边界
用指针j枚举目标序列的右边界
用指针k枚举区间[i, j]]></description><category></category></item><item><title><![CDATA[c++实现---和为s的两个数]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107208982</link><guid>https://blog.csdn.net/Fizz6018/article/details/107208982</guid><author>Fizz6018</author><pubDate>Wed, 08 Jul 2020 16:30:48 +0800</pubDate><description><![CDATA[题目：输入一个递增排序的数组和一个数字S，在数组中查找两个数，使得他们的和正好是S，如果有多对数字的和等于S，输出两个数的乘积最小的。
方法一：哈希法（简单但是需要额外空间）
要求a + b = sum, 如果已知a， 那么b = sum - a；所以可以先将b添加入哈希中，然后遍历一遍数组设为a， 在哈希中寻找是否存在sum-a，然后再更新乘积最小值
代码如下：
#include&lt;unordered_map&gt;
class Solution {
public:
    //哈希法
    vec]]></description><category></category></item><item><title><![CDATA[c++实现---数组中只出现一次的数（两个）]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107201709</link><guid>https://blog.csdn.net/Fizz6018/article/details/107201709</guid><author>Fizz6018</author><pubDate>Wed, 08 Jul 2020 11:25:19 +0800</pubDate><description><![CDATA[题目：
一个整型数组里除了两个数字之外，其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
方法一：暴力法（借助哈希实现）
很显然的方法，遍历一遍数组，用map记录出现的次数，然后再遍历一遍数组，找出出现1次的数字。
代码
#include&lt;unordered_map&gt;
class Solution {
public:
    void FindNumsAppearOnce(vector&lt;int&gt; data,int* num1,int *num2) {
        un]]></description><category></category></item><item><title><![CDATA[c++实现---二叉树的第k个结点]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107198128</link><guid>https://blog.csdn.net/Fizz6018/article/details/107198128</guid><author>Fizz6018</author><pubDate>Wed, 08 Jul 2020 09:36:26 +0800</pubDate><description><![CDATA[题目：
给定一棵二叉搜索树，请找出其中的第k小的结点。例如， （5，3，7，2，4，6，8）    中，按结点数值大小顺序第三小结点的值为4。
思路：
按照中序遍历的顺序遍历一棵搜索二叉树，则数值是递增顺序的，接着找到第k大即可。
class Solution {
public:
    void midOrdered(vector&lt;TreeNode*&gt;&amp; help,TreeNode* pRoot){
        if(pRoot-&gt;left) midOrdered(help,]]></description><category></category></item><item><title><![CDATA[c++实现---数字在排序数组中出现的次数]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107193279</link><guid>https://blog.csdn.net/Fizz6018/article/details/107193279</guid><author>Fizz6018</author><pubDate>Tue, 07 Jul 2020 23:26:40 +0800</pubDate><description><![CDATA[题目描述
统计一个数字在排序数组中出现的次数。
方法一：暴力方法
查找数组中某个目标，不管数组是否有序，直接遍历一遍即可。
代码：
class Solution {
public:
    int GetNumberOfK(vector&lt;int&gt; nums ,int k) {
        int ret = 0;
        for (int val : nums) {
            if (val == k) 
                ++ret;
        }]]></description><category></category></item><item><title><![CDATA[c++实现---两个链表的第一个公共节点]]></title><link>https://blog.csdn.net/Fizz6018/article/details/107184971</link><guid>https://blog.csdn.net/Fizz6018/article/details/107184971</guid><author>Fizz6018</author><pubDate>Tue, 07 Jul 2020 16:49:04 +0800</pubDate><description><![CDATA[题目描述
输入两个链表，找出它们的第一个公共结点。（注意因为传入数据是链表，所以错误测试数据的提示是用其他方式显示的，保证传入数据是正确的）
方法：双指针法
代码
class Solution {
public:
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
        if(!pHead1 || !pHead2){
            return nullptr;
        }
      ]]></description><category></category></item></channel></rss>