微软原题,折纸问题,详解思路

这篇博客详细解析了微软的一道折纸问题,通过分析折痕的产生和变化规律,将问题转化为二叉树结构,利用中序遍历求解。作者介绍了如何理解折痕的凹凸性质,以及每次折叠后折痕数量与位置的变化,最终通过构建二叉树模型并进行中序遍历来得出解决方案。文章鼓励读者参考B站左神的精炼代码进行深入学习。
摘要由CSDN通过智能技术生成

首先这是从左神视频里面出现的题目。

折纸问题:

请把一段纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。请把一段纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。请把一段纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。请把一段纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。例如:N=1时,打印: down N=2时,打印: down down up。

我现在这里说一下我自己的思路:

1、首先搞清楚为什么折痕会出现凹折痕和凸折痕,一张纸折叠第一次会出现一个折痕,这个定为凹折痕,第二次折叠时我们假定吧纸中间连接处分开,就相当于直接折叠两张纸,所以会出现两个折痕,但是上面那张纸它的方向是反的,所以上面那张纸的凹折痕放下来就变成了凸折痕。画个图说明一下。

2.弄懂折叠几次会出现几个折痕。从上述分析中很轻易的可以得出,每折叠一次纸的层数会乘二,所以新增的折痕数也是乘二的,得出折痕数和折纸次数的关系为2的n次方-1。

3,开始分析折痕出现规律。一张正面的纸折一次会出现一个凹折痕,变成正反两张纸,它的下一轮折叠就变成了凹凸两道折痕,并且分布在原折痕左右两侧,而一张反的纸折一次会出现一个凸折痕,变反正两张纸,它的下一轮折叠就是凸凹两道折,也是分布在左右两侧。这种一个折痕再次折叠出现两个新折痕的样子很像二叉树结构,在这里将纸每次

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值