折纸问题

请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边向上⽅ 对折,对折N次。请从上到下计算出所有折痕的⽅向。

给定折的次数n,请返回从上到下的折痕的数组,若为下折痕则对应元素为"down",若为上折痕则为"up".

测试样例:
1
返回:["down"]


import java.util.*;

public class FoldPaper {
    public String[] foldPaper(int n) {
    	ArrayList<String> res = new ArrayList();
    	solve(1, n, true, res);
    	return (String[]) res.toArray(new String[res.size()]);
    }

	private void solve(int i, int n, boolean down, ArrayList<String> res) {
		if (i > n) {
			return;
		}
		solve(i+1, n, true, res);
		res.add(down ? "down" : "up");
		solve(i+1, n, false, res);
	}
}
 
牛客网之“折纸问题 昨天在看程云数据结构视频遇到一道折纸问题,当比较感兴趣,并对问题进行分析提取关键点进而通过代码实现。 内容分为:题目描述、问题分析、解决问题和代码描述四大部分。题目描述折纸问题 【题目】 请把一段纸条竖着放在桌子上,然后从纸条的下向上方对折1次,压出痕后展开。此 痕是凹下去的,即痕突起的方向指向纸条的背面。如果从纸条的下向上方连续对折2 次,压出痕后展开,此有三条痕,从上到... 阅读详情

相关推荐

算法学习23-折纸问题

折纸问题 【题目】 请把一段纸条竖着放在桌子上,然后从纸条的下向 上方对折1次,压出痕后展开。此 痕是凹下去的,即痕 突起的方向指向纸条的背面。如果从纸条的下向上方连续对折 2 次,压出痕后展开,此有三条痕,从上到下依次是下 痕、下痕和上痕。 给定一 个输入参数N,代表纸条都从下向上方连续对折N次, 请从上到下打印所有痕的方向。 例如:N=1,打印: down N=2...

qq_45205390的博客 1519

java折纸问题(转化为二叉树问题

一张纸条,由下向上对折痕凹,继续向上痕分别是凹凹凸,以此类推 给定一个输入参数N,代表纸条从下向上对折N次,请从上向下打印痕的方向 例如 n=1 凹 n=2 凹凹凸 这道题可以转化为二叉树的问题 第一次 凹 第二次 凹 凹 凸 第三次 凹 凹 凸 凹 凸 凹 凸 ………………………… 每次新增的线的凹凸性符合二叉树的规律,这道题可以转化为二叉树的问题来解决,每个父节点对应的都是凹,凸两个子节点,利用中序遍历来打印 private void printFoldPa.

芝麻年糕的博客 491

折纸问题算法及其Java实现

折纸问题(Folding Paper Problem)是一个有趣且经典的数学问题,它涉及到将一张纸连续叠多次后,最终展开痕的形成和痕之间的关系。然后,在新数组的中间位置插入一个新的痕方向。最后,根据上一个痕方向确定新痕方向的规律,将新的痕方向填充到新数组的剩余位置。通过以上的算法和代码实现,我们可以得到任意叠次数下的痕序列。在每次循环中,我们根据上一次叠结果的长度创建一个新的数组。为3,输出的痕序列为:“down, down, up, down, down, up”。

CyberLancer的博客 465

折纸问题(微软原题)

请把一段纸条竖着放在桌子上,然后从纸条的下向上方对折1次,压出痕后展开。 此痕是凹下去的,即痕突起的方向指向纸条的背面。 如果从纸条的下向上方连续对折2次,压出痕后展开,此有三条痕,从上到下依次是下痕、下痕和上痕。 给定一个输入参数N,代表纸条都从下向上方连续对折N次。请从上到下打印所有痕的方向。 例如:N=1,打印: down N=2,打印: down down up 思路:实际操作一下会发现规律,就是一个头节点为凹的中序遍历。 Java代码 public stat

weixin_44196561的博客 423

折纸问题(递归java)

1问题描述: 请把纸条竖着放在桌⼦上,然后从纸条的下向上⽅对折,压出痕后再展 开。此1痕,突起的⽅向指向纸条的背⾯,这条痕叫做“下”痕 ;突起的⽅向指向纸条正⾯的痕叫做“上”痕。如果每次都从下向上⽅ 对折对折N次。请从上到下计算出所有痕的⽅向。  给定的次数n,请返回从上到下的痕的数组,若为下痕则对应元素为"down",若为上痕则为"up".

iCoding91 1479

SpringBoot+微信小程序 中国剪纸微信设计与实现(微信端)管理平台源码【适合毕设/课设/学习】Java+MySQL

直接拿走,意外获得200多套代码,需要的滴我SpringBoot+微信小程序 中国剪纸微信设计与实现(微信端)管理平台源码【适合毕设/课设/学习】Java+MySQL(可提供说明文档(通过*AIGC*)

QQ1273148749的博客 667

Java while语句练习一——珠穆朗玛峰折纸(取自b站黑马Java零基础教程)

【代码】Java while语句练习一——珠穆朗玛峰折纸(取自b站黑马Java零基础教程)

SiYuHuang_SCDN的博客 847

JSP剪纸-非遗信息交流平台c2c1g--程序+源码+数据库+调试部署+开发环境

剪纸作为中国传统的民间艺术,具有悠久的历史和深厚的文化底蕴,是中华民族非物质文化遗产的重要组成部分。然而,随着现代社会的快速发展,剪纸艺术的传承与发展面临诸多挑战,如传承人老龄化、技艺传承受限、社会认知度不高等问题。因此,建立剪纸-非遗信息交流平台,旨在通过数字化手段促进剪纸艺术的传播、交流与创新,对于保护和传承这一非物质文化遗产具有重要意义。

Kittyxia001的博客 2324

Java中的高效模型压缩技术:从剪枝到知识蒸馏

其基本思想是训练一个大型的、表现优异的“教师模型”,并使用该模型的预测结果来训练较小的“学生模型”。通过这种方式,学生模型能够学习教师模型的决策界,从而在保持较高性能的同减小模型规模。在Java中实现模型压缩技术不仅能显著提高模型的推理速度,还能减少模型的内存占用,特别是在资源有限的环境中。模型量化是一种将模型的权重和激活值从浮点数转换为低精度(如int8)的技术,从而大幅减少模型的存储和计算需求。以下是一个简单的Java示例,展示了如何在学生模型的训练过程中,使用教师模型的输出进行知识蒸馏。

微赚淘客系统开发者博客 1002

java-jsp剪纸-非遗信息交流平台c2c1g[独有源码]如何找到适合自己的毕业设计的指南

选题背景: 剪纸作为中国传统的民间艺术形式,具有悠久的历史和独特的文化价值。然而,随着现代社会的发展和生活方式的改变,剪纸这一非物质文化遗产正逐渐失去其传承和发展的土壤。因此,设计和建立一个剪纸非遗信息交流平台具有重要的研究意义。 选题意义: 剪纸-非遗信息交流平台的设计与建立对于保护和传承剪纸这一非物质文化遗产具有重要意义。首先,该平台可以提供一个集中展示和传播剪纸相关信息的平台。传统的剪纸传承方式主要依靠口耳相传和师徒传承,信息传播受限,无法达到广泛的影响力。而剪纸-非遗信息交流平台可以通过发布剪纸技

一念计算机毕设源码程序 279

剪格子.java

package A类有价值的回顾的;import java.util.Scanner; //对于这道题,你得到的经验就是说,对于格子的选择与谁有关,这就是在递归中需要传递的 //最重要的是,不知道出什么样的题目,将会丢失目标 public class 剪格子 { public static int[][] a = new int[11][11];//输入的数 public stati

一个初学者 的博客 659
上一篇: Valid Palindrome
下一篇: 顺时针打印矩阵
iteye_6755
博客等级 码龄8年 0粉丝 4原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值