<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[可以混，但不能真的菜]]></title><description><![CDATA[随缘写写]]></description><link>https://blog.youkuaiyun.com/main_double</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; main_double]]></copyright><item><title><![CDATA[剑指offer JZ7 重建二叉树]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/142533483</link><guid>https://blog.youkuaiyun.com/main_double/article/details/142533483</guid><author>main_double</author><pubDate>Wed, 25 Sep 2024 21:45:39 +0800</pubDate><description><![CDATA[想要重建一棵二叉树，得知道这棵树的先序和中序遍历序列，或者是中序和后序遍历序列，这是数据结构的基础知识。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}，则重建出如下图所示。这道题考察的是二叉树根据先序、中序来重建二叉树的知识，这是数据结构二叉树部分的基础考点，清楚这个推导过程是先决条件。③这个节点把中序序列分成了左右两部分，对应二叉树的左右子树，把这个子数组用java的库函数建立对应的子树；给定节点数为 n 的二叉树的。]]></description><category></category></item><item><title><![CDATA[建立一棵二叉树]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/142417622</link><guid>https://blog.youkuaiyun.com/main_double/article/details/142417622</guid><author>main_double</author><pubDate>Sat, 21 Sep 2024 15:30:25 +0800</pubDate><description><![CDATA[这段代码写来仅自用，如有需要，在移植到自己本地的时候需要微调。]]></description><category></category></item><item><title><![CDATA[剑指offer JZ54 二叉搜索树的第k个节点]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/142417097</link><guid>https://blog.youkuaiyun.com/main_double/article/details/142417097</guid><author>main_double</author><pubDate>Sat, 21 Sep 2024 15:08:00 +0800</pubDate><description><![CDATA[首先明确，二叉搜索树，也叫二叉排序树，即左子树的节点的值全都小于根节点，右子树的节点值全都大于根节点，每颗子树也都遵从这个规则。那么问题就很简单了：要找第k小的节点，就是找经过中序遍历后的序列的第k个位置的节点。网站上标的难度为中等难度，但其实着重考察的是对二叉搜索树，这种数据结构特性掌握的情况，其中用到了中序遍历，其他的像先序遍历、后续遍历都是需要掌握的，对应于不同的情况。该二叉树所有节点按结点值升序排列后可得[2,3,4,5,6,7,8]，所以第3个结点的结点值为4，故返回对应结点值为4的结点即可。]]></description><category></category></item><item><title><![CDATA[剑指offer JZ55 二叉树的深度]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/142334487</link><guid>https://blog.youkuaiyun.com/main_double/article/details/142334487</guid><author>main_double</author><pubDate>Wed, 18 Sep 2024 16:15:09 +0800</pubDate><description><![CDATA[此题属于简单题，但层次遍历是二叉树的基础算法，需要熟练掌握，而层次遍历又会用到队列这种数据结构，举一反三的话，层次遍历与广度优先算法BFS是有一些相似的，也是用到了队列，相对应的，二叉树里面的深度优先算法DFS，会用到栈这种结构，这些基本都属于是二叉树这块的基础技能。]]></description><category></category></item><item><title><![CDATA[剑指offer JZ23 链表中环的入口结点]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/142058656</link><guid>https://blog.youkuaiyun.com/main_double/article/details/142058656</guid><author>main_double</author><pubDate>Mon, 09 Sep 2024 16:29:16 +0800</pubDate><description><![CDATA[也就是说，如果以相同的速度，让两个指针，一个从头开始遍历到相遇节点，一个从相遇节点在环中遍历，最后到相遇的节点走的是相同的距离，而因为此时速度相同，所以其中y这个距离，就是重复走的距离，那么他们第一次相遇的点就是环的入口节点了。那么在这个过程中，快指针一共走了x+n*(y+z)+y,慢指针共走了x+m*(y+z)+y，而相同的时间，fast是slow 速度的2倍，所以距离也是2倍，故：x+n*(y+z)+y=2(x+m*(y+z)+y),推导得出(②在有环的链表中找到环的入口。2.双指针（推荐掌握）]]></description><category></category></item><item><title><![CDATA[剑指offerJZ24 反转链表]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/141787089</link><guid>https://blog.youkuaiyun.com/main_double/article/details/141787089</guid><author>main_double</author><pubDate>Sun, 01 Sep 2024 17:36:12 +0800</pubDate><description><![CDATA[简单题，主要考察链表基础，我们在建一个链表时，通常有尾插法和头插法建表(此处不做详细介绍)。简单来说，尾插法可以得到一个按照插入顺序的链表，头插法可以得到一个逆置的链表，所以此题可以在遍历原链表的时候，以头插法建一个新表，而得到的新表，就是需要的答案。经反转后，原链表变为{3,2,1}，所以对应的输出为{3,2,1}。要求：空间复杂度 O(1)，时间复杂度 O(n)。数据范围： 0≤n≤10000≤n≤1000。如当输入链表{1,2,3}时，]]></description><category></category></item><item><title><![CDATA[java: 错误: 无效的源发行版：17]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/140781553</link><guid>https://blog.youkuaiyun.com/main_double/article/details/140781553</guid><author>main_double</author><pubDate>Mon, 29 Jul 2024 21:37:55 +0800</pubDate><description><![CDATA[排查：百度后，推测大概率就是pom文件的配置问题，是springboot与jdk不兼容的问题，需要修改几处配置（无需重建项目）。1.首先确认一下你的springboot跟java版本是否冲突（我这块没问题，但是好像17有冲突，不确定，是否需要修改视自己的实际情况而定。如果你到了这一步还没解决的话，那你可以看看我最后是怎么解决的，由于我在控制台看到我的项目执行到server那个module时有问题，所以我专门看了一下这一块的pom文件，发现了问题。于是我把这块的配置改成了8，刷新maven，项目成功启动。]]></description><category></category></item><item><title><![CDATA[启动yarn后，其他节点没有NodeManager]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/140379107</link><guid>https://blog.youkuaiyun.com/main_double/article/details/140379107</guid><author>main_double</author><pubDate>Fri, 12 Jul 2024 15:26:28 +0800</pubDate><description><![CDATA[这个问题虽然折磨了我两天，但是原因特别蠢，可能与各位不一定一样，我是因为ResourceManager的节点的"/etc/hadoop/workers"文件没有配置好（没有配hadoop102和hadoop104），但排查过程可以作参考。]]></description><category></category></item><item><title><![CDATA[yum install epel-release 遇到的问题]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/140245863</link><guid>https://blog.youkuaiyun.com/main_double/article/details/140245863</guid><author>main_double</author><pubDate>Sun, 07 Jul 2024 14:43:07 +0800</pubDate><description><![CDATA[在对一些配置文件进行修改的时候，一定要先进行备份，如果出错，还有挽救的机会。安装epel的时候,执行。]]></description><category></category></item><item><title><![CDATA[罗马字符转换数字]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/119891397</link><guid>https://blog.youkuaiyun.com/main_double/article/details/119891397</guid><author>main_double</author><pubDate>Tue, 24 Aug 2021 15:53:16 +0800</pubDate><description><![CDATA[题目描述：

罗马数字包含以下七种字符:I，V，X，L，C，D和M。

字符 数值I 1；V 5；X 10；L 50；C 100；D 500；M 1000；例如， 罗马数字 2 写做II，即为两个并列的 1。12 写做XII，即为X+II。 27 写做XXVII, 即为XX+V+II。

通常情况下，罗马数字中小的数字在大的数字的右边。但也存在特例，例如 4 不写做IIII，而是IV。数字 1 在数字 5 的左边，所表示的数等于大数 5 减小数 1 得到的数值...]]></description><category></category></item><item><title><![CDATA[西安华为OD面试经验(德科)]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/117886304</link><guid>https://blog.youkuaiyun.com/main_double/article/details/117886304</guid><author>main_double</author><pubDate>Mon, 14 Jun 2021 00:58:03 +0800</pubDate><description><![CDATA[背景：

本科某双非邮电软件专业，二战冲985失败，随便写的简历挂boss上，hr电话联系帮我约的机考(华为od网络风评很差，这一点还是hr告诉我这个初入社会的学生党的，态度挺诚恳，我也只是本着随便试试的态度去的)。机考是5.7号，技术一面是5.11号，技术二面5.14号，两三天后主管面，之后就是两周左右的审核环节，到最终拿到offer，不到一个月时间吧，其中面试环节要说，也就是一周时间，审核比较花时间。

流程：

机考——性格测试——技术一面——技术二面——主管面——薪资福利待遇通知——体检入职

..]]></description><category></category></item><item><title><![CDATA[数组中重复的数字]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/116573340</link><guid>https://blog.youkuaiyun.com/main_double/article/details/116573340</guid><author>main_double</author><pubDate>Sun, 09 May 2021 23:57:36 +0800</pubDate><description><![CDATA[题目描述：

在一个长度为 n 的数组 nums 里的所有数字都在 0～n-1 的范围内。数组中某些数字是重复的，但不知道有几个数字重复了，也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

示例 1：

输入：
[2, 3, 1, 0, 2, 5, 3]
输出：2 或 3
限制：

2 &lt;= n &lt;= 100000

思路：

来自于剑指offer，申请一个初始元素全为0的数组arr[]，遍历原先数组nums[]，用nums[]存的值，来对应申请的arr[]的下标的值，每出现一次.]]></description><category></category></item><item><title><![CDATA[求解平方根，立方根不使用库函数(牛顿迭代法)]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/116381391</link><guid>https://blog.youkuaiyun.com/main_double/article/details/116381391</guid><author>main_double</author><pubDate>Mon, 03 May 2021 22:58:12 +0800</pubDate><description><![CDATA[题目描述

计算一个数字的立方根，不使用库函数。

保留一位小数。

输入描述:


待求解参数，为double类型（一个实数）

输出描述:


输入参数的立方根。保留一位小数。

输入

216

输出

6.0

思想：

求立方根：令f(x) = x^3-a = 0,其中a为输入数，解出x即为a的立方根，利用牛顿迭代法，让f(x)在X0处一阶泰勒展开，即f(x) = f(x0)+f`(x0)(x-x0) = x0^3-a+3*x0^2*(x-x0)=0;得到x = x0+(a-x0^3)/(3*x0]]></description><category></category></item><item><title><![CDATA[删除字符串中出现次数最少的字符]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/116331619</link><guid>https://blog.youkuaiyun.com/main_double/article/details/116331619</guid><author>main_double</author><pubDate>Sat, 01 May 2021 17:46:42 +0800</pubDate><description><![CDATA[题目描述

实现删除字符串中出现次数最少的字符，若多个字符出现次数一样，则都删除。输出删除这些单词后的字符串，字符串中其它字符保持原来的顺序。

注意每个输入文件有多组输入，即多个字符串用回车隔开

输入描述:


字符串只包含小写英文字母,不考虑非法输入，输入的字符串长度小于等于20个字节。

输出描述:


删除字符串中出现次数最少的字符后的字符串。

示例1

输入

abcdd

aabcddd

输出

dd

aaddd

解题思路：

    大致思路是将一串字符存到一个数组中，再...]]></description><category></category></item><item><title><![CDATA[打印杨辉三角]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/115265469</link><guid>https://blog.youkuaiyun.com/main_double/article/details/115265469</guid><author>main_double</author><pubDate>Sat, 27 Mar 2021 15:15:28 +0800</pubDate><description><![CDATA[题目描述：打印一个10行的杨辉三角

思路：1.用二维数组存储值；2.遍历二维数组

(Java)代码实现：


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/**
		 * 打印10行的杨辉三角； 
		 **/
		//1.声明二维数组
		int[][] yang = new int[10][];
		//2.给数组赋值
		for(int i=0;i&lt;yang.length;i]]></description><category></category></item><item><title><![CDATA[用栈实现回文串检测]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/111398907</link><guid>https://blog.youkuaiyun.com/main_double/article/details/111398907</guid><author>main_double</author><pubDate>Sat, 19 Dec 2020 00:14:26 +0800</pubDate><description><![CDATA[设计思想：栈具有先进后出的特性，将字符串str的一半长度字符入栈，再让其依次出栈，对比出栈序列字符是否与剩下一半长度字符依次相等。需要注意字符个数，分奇数偶数。
bool ishuiwen(string str){
	int s[100];
	int top=-1,mid=str.length()/2-1;
	//入栈； 
	for(int i=0;i&lt;=mid;++i){
		top++;
		s[top] = str[i];
	}
	int next; 
	if(str.length()%2==0]]></description><category></category></item><item><title><![CDATA[递归实现回文串的判断]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/111398483</link><guid>https://blog.youkuaiyun.com/main_double/article/details/111398483</guid><author>main_double</author><pubDate>Fri, 18 Dec 2020 23:47:23 +0800</pubDate><description><![CDATA[//函数实现；
bool find(const char *s,int n)
{
	if(n&lt;=1)	return true;//递归边界条件（退出条件）；
	else if(s[0]==s[n-1])	return find(s+1,n-2);//依次判断对应位置上的字符是否相等，递归调用，每次字符串长度减2；
	else return false;
}

int main()
{
	string s="abccba";
	string ss="a bc c b a";
	int len = ss.]]></description><category></category></item><item><title><![CDATA[用两个栈模拟队列的伪代码实现]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/110409726</link><guid>https://blog.youkuaiyun.com/main_double/article/details/110409726</guid><author>main_double</author><pubDate>Tue, 01 Dec 2020 00:01:50 +0800</pubDate><description><![CDATA[已知条件：

栈S1与栈S2，有判断栈满函数Isfull(),判栈空IsEmpty(),入栈push(),出栈pop();用这些基本操作来实现EnQueue(),DeQueue(),IsQueueEmpty()函数；

基本思路：栈具有先进后出的特性，所以我们用s1来存储进队的元素，用s2来出队，在这个过程中，由于s1出栈的数据是逆序的，再压入s2再次逆序，那么从s2输出的数据就是正常顺序的，用这样的思路模拟一个队列。

需要注意的点是：模拟入队和出队的时候，需要判断s1是否已满，以及s2是否为空，当s1满]]></description><category></category></item><item><title><![CDATA[数据结构—拓扑排序]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/109961875</link><guid>https://blog.youkuaiyun.com/main_double/article/details/109961875</guid><author>main_double</author><pubDate>Sun, 22 Nov 2020 19:53:39 +0800</pubDate><description><![CDATA[问：什么是拓扑排序，有什么用，应用场景是什么？

首先搞清楚什么是AOV网，如果用DAG(有向无环图)来表示一个工程，用&lt;Vi,Vj&gt;来表示活动Vi必须先于Vj进行的这样一种关系，我们把这种有向图称为顶点表示活动的网络，记作AOV网。

拓扑排序：有一个有向无环图的顶点组成的一个序列，必须满足如下条件：

①每个顶点都必须出现，且只能出现一次；

②如果顶点A在序列中的位置处在B的前面，那么在图中不存在由B到A的路径。

注意拓扑排序序列并不唯一，每个AOV网都可以有一个或者多个拓扑序列。

.]]></description><category></category></item><item><title><![CDATA[图的连通，连通图，连通分量，强连通分量]]></title><link>https://blog.youkuaiyun.com/main_double/article/details/109903887</link><guid>https://blog.youkuaiyun.com/main_double/article/details/109903887</guid><author>main_double</author><pubDate>Sat, 21 Nov 2020 18:55:42 +0800</pubDate><description><![CDATA[1.对于无向图而言，如果图中的某两个点，例如：存在W到V的路径，那么我们说w和v是连通的；进一步如果图中任意两点之间都是存在路径的，那么我们说这个是连通的，即可称为连通图。

2.连通子图：设G=(V,E)和G`=(V`,E`),如果V`是V的子集，并且E`是E的子集，那么称G`是G的子图。如果子图是连通的，那么就是连通子图，这不难理解。(需要注意，并不是你随便从G=(V,E))中挑的V的子集V`跟E的子集E`，就能构成一个子图，因为有可能挑的边V跟顶点E没有关系，那也就构不成一个图了)

3.极大连通子图]]></description><category></category></item></channel></rss>