题目:一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连
public class ComboTest {
public static void main(String... args) {
int[] inArrays = {1, 2, 2, 3, 4, 5};
int[] outArrays = new int[inArrays.length];
go(inArrays[0], 1, inArrays, outArrays);
}
public static void go(int preNum, int level, int[] inArrays, int[] outArrays) {
List<Integer> inList = new ArrayList<Integer>();
for (int i = 0; i < inArrays.length; i++) {
if (inList.contains(inArrays[i])) continue;
if (level == 4 && inArrays[i] == 3) continue;
if ((preNum == 3 && inArrays[i] == 5)
|| (preNum == 5 && inArrays[i] == 3))
continue;
outArrays[level - 1] = inArrays[i];
inList.add(inArrays[i]);
if (level == outArrays.length) {
System.out.println(Arrays.toString(outArrays));
} else {
go(inArrays[i], level + 1, createNewArray(inArrays, i), outArrays);
}
}
}
private static int[] createNewArray(int[] inArrays, int index) {
int[] newArrays = new int[inArrays.length - 1];
int newIndex = 0;
for (int i = 0; i < inArrays.length; i++) {
if (i == index) continue;
newArrays[newIndex] = inArrays[i];
newIndex++;
}
return newArrays;
}
}
分享到:
相关推荐
《算法导论及其编程练习》是一本深入探讨算法理论与实践的教材,旨在提升编程者对算法的理解和应用能力。该资源包含多个章节,每个章节都聚焦于特定的算法思想和方法,通过丰富的编程练习来巩固学习成果。下面将详细...
C++编程练习题大全 本资源为C++学者入门实用资料,提供了多种编程练习题和相应的答案,涵盖了基本的编程概念和数据结构。通过这些练习题,读者可以提高自己的编程能力和解决问题的思路。 1. factorial_sum 本题目...
本文件提供了第六版中第二章和第三章部分编程练习的答案。 在第二章的编程练习中,介绍了C语言的基本输入输出操作。PE 2-1 练习通过多次使用 printf 函数,演示了如何在控制台上打印字符串,并展示了换行符和空格的...
在学习Java的过程中,编程练习是巩固知识、提升技能的关键环节。"Java课后编程练习题答案"提供了对这些练习题的解答,帮助学习者检查自己的理解和解决方法。 一、Java基础 Java的基础包括语法、数据类型、变量、...
通过以上的分析,我们可以得出结论,该压缩包“编程练习2-B1.rar”很可能是一个包含了一系列C++三维程序练习题的资源,旨在帮助学习者通过实践加深对三维图形编程知识的理解和应用。这些练习不仅适用于个人学习和...
Java面向对象编程练习题 本资源摘要信息涵盖了 Java 面向对象编程的基础知识,通过三个练习题,展示了 Java 编程语言的基本概念和应用。 练习题 01: 类的成员变量 本练习题展示了 Java 中类的成员变量的概念。类 ...
本资源提供的"java语言程序设计基础篇课后编程练习答案"是一个非常宝贵的参考资料,可以帮助学习者检验自己的学习成果,理解并巩固Java编程的基本概念和技术。 在Java编程中,变量是存储数据的容器,分为基本数据...
Java 基础编程练习题汇总 本资源提供了 50 道 Java 基础编程练习题,涵盖了 Java 编程的多个方面,包括数据类型、运算符、控制结构、函数、数组、字符串等。这些练习题可以帮助初学 Java 编程的开发者更好地理解 ...
Python 编程练习题和答案 Python 是一种流行的高级编程语言,广泛应用于Web开发、数据分析、人工智能等领域。作为一名 Python 开发者,了解 Python 的基本语法和编程技巧是非常重要的。本资源汇集了一些常见的 ...
根据提供的文件内容,我们可以提取出以下知识点: 1. C++编程基础: ...以上知识点涵盖了C++编程中的基础概念、编程技巧、面向对象编程、算法实现等多个方面,旨在通过练习题加深对C++编程的理解和掌握。
项目三:面向对象编程练习.pdf
本文将针对该书的第二章和第三章的编程练习题及其答案进行详细解析,帮助读者更好地把握C++编程的基础内容。 在第二章“开始学习C++”中,学习者将接触到C++语言的基本组成部分。本章节的练习题旨在巩固学习者对...
在这一领域,编程练习题不仅是检验学习成果的试金石,也是提高解决实际问题能力的有效工具。本文将详细介绍一系列C++编程练习题及其答案,内容涉及数学运算、字符串处理、数组操作等多个方面,旨在帮助程序员提高...
#编程练习##For 算法:设计与分析,第 1 部分(Tim Roughgarden 教授) ###1:InversionCounter 应用分治递归算法(基于合并排序)来计算未排序数组中的反转。 ###2:QuickSorter 使用 QuickSort 对数组进行排序,并...
【Python编程练习题详解】 在Python编程领域,不断练习是提升技能的关键。"Python编程练习题,用Python写的各种编程练习题.zip" 这个压缩包文件提供了丰富的实践机会,帮助学习者巩固基础,理解Python语言的核心...
Ray的Python编程练习题集是一个记录了作者在学习Python编程过程中所积累的练习题。这些习题不仅涵盖了Ray在学习Python中的实际练习,而且还包括了他为了进一步巩固和提高编程技能而准备的习题。该题集是Ray作为编程...
这份题库旨在帮助初学者巩固Python编程基础,通过一系列练习题来提高编程能力。下面将详细解释其中涉及的知识点: 1. **整除与条件判断**: 在第一个题目中,要求找出所有能被17整除的三位数。这里使用了`range()`...
本项目“基于Java、Python和HTML的日常编程练习设计源码”便是一个典型的例子,它提供了一个综合性的编程练习环境,集合了Java、Python和HTML三种主流的编程语言,共计453个文件,覆盖了多种编程练习场景,以助于...
《C++ Primer Plus 编程练习源码工程 第15章》是针对C++初学者的一个宝贵资源,它包含了作者LeonardoLiuwenbo在学习《C++ Primer Plus》这本经典教材时所做的编程练习。这个章节聚焦于C++语言的深入特性,旨在通过...
Python编程练习题(100例) 题目 1 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 题目...