题目:一个组数: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 本题目...
在学习Java的过程中,编程练习是巩固知识、提升技能的关键环节。"Java课后编程练习题答案"提供了对这些练习题的解答,帮助学习者检查自己的理解和解决方法。 一、Java基础 Java的基础包括语法、数据类型、变量、...
Java面向对象编程练习题 本资源摘要信息涵盖了 Java 面向对象编程的基础知识,通过三个练习题,展示了 Java 编程语言的基本概念和应用。 练习题 01: 类的成员变量 本练习题展示了 Java 中类的成员变量的概念。类 ...
本资源提供的"java语言程序设计基础篇课后编程练习答案"是一个非常宝贵的参考资料,可以帮助学习者检验自己的学习成果,理解并巩固Java编程的基本概念和技术。 在Java编程中,变量是存储数据的容器,分为基本数据...
Java 基础编程练习题汇总 本资源提供了 50 道 Java 基础编程练习题,涵盖了 Java 编程的多个方面,包括数据类型、运算符、控制结构、函数、数组、字符串等。这些练习题可以帮助初学 Java 编程的开发者更好地理解 ...
Python 编程练习题和答案 Python 是一种流行的高级编程语言,广泛应用于Web开发、数据分析、人工智能等领域。作为一名 Python 开发者,了解 Python 的基本语法和编程技巧是非常重要的。本资源汇集了一些常见的 ...
根据提供的文件内容,我们可以提取出以下知识点: 1. C++编程基础: ...以上知识点涵盖了C++编程中的基础概念、编程技巧、面向对象编程、算法实现等多个方面,旨在通过练习题加深对C++编程的理解和掌握。
项目三:面向对象编程练习.pdf
#编程练习##For 算法:设计与分析,第 1 部分(Tim Roughgarden 教授) ###1:InversionCounter 应用分治递归算法(基于合并排序)来计算未排序数组中的反转。 ###2:QuickSorter 使用 QuickSort 对数组进行排序,并...
在所提供的内容中,我们可以...这些算法问题不仅在编程练习中常见,也是初学者掌握基础编程技能和逻辑思维能力的重要手段。通过完成这些练习题,可以加深对条件判断、循环结构以及数组操作等基础编程概念的理解和应用。
【Python编程练习题详解】 在Python编程领域,不断练习是提升技能的关键。"Python编程练习题,用Python写的各种编程练习题.zip" 这个压缩包文件提供了丰富的实践机会,帮助学习者巩固基础,理解Python语言的核心...
* 编程练习三:使用端面铣刀铣处上表面,对到,建立工作坐标系G54,选用2号刀位的φ10立铣刀。 这些编程实例展示了数控铣床编程的基本概念和技术,包括工作坐标系设置、刀具选择、运动控制指令等方面。 6. 数控...
C++编程练习题及答案 本资源提供了一系列C++编程练习题,涵盖了多个领域,包括数学运算、字符串处理、数组操作等。这些练习题可以帮助程序员提高编程技能,熟悉C++语言的使用。 一、简单问题: 1. 编程求下列式子...
C++primer-plus第6版中文版编程练习答案汇总 本资源摘要信息是对C++primer-plus第6版中文版编程练习答案的总结,涵盖了C++语言的基础知识和编程实践。 第二章:开始学习C++ 本章节主要介绍了C++语言的基本知识,...
这份题库旨在帮助初学者巩固Python编程基础,通过一系列练习题来提高编程能力。下面将详细解释其中涉及的知识点: 1. **整除与条件判断**: 在第一个题目中,要求找出所有能被17整除的三位数。这里使用了`range()`...
《C++ Primer Plus 编程练习源码工程 第15章》是针对C++初学者的一个宝贵资源,它包含了作者LeonardoLiuwenbo在学习《C++ Primer Plus》这本经典教材时所做的编程练习。这个章节聚焦于C++语言的深入特性,旨在通过...
《Python编程练习与解答》是一本非常实用的Python编程书籍,它不仅涵盖了Python编程的基础知识和常用数据结构,还详细介绍了Python的文件操作、异常处理、函数式编程和面向对象编程等相关知识,同时也介绍了Python...
回溯法解决N皇后问题,解空间的形式输出结果并输出解个数。VC6.0编译通过。
"C语言编程练习.pdf" C语言编程练习.pdf是一个关于C语言编程的练习文件,旨在帮助程序员提高C语言编程技能。本文件涵盖了C语言的基本概念、变量、数据类型、运算符、控制结构、函数、数组、指针等多个方面的知识点...