算法程序题:
该公司笔试题就1个,要求在10分钟内作完。
题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
下面的代码是网上的一位老兄写的,值得参考一下:
上面的程序还可以改进一下的,各位有时间可以想一想.
- import java.util.Iterator;
- import java.util.TreeSet;
-
- public class TestQuestion {
-
- private String[] b = new String[]{"1", "2", "2", "3", "4", "5"};
- private int n = b.length;
- private boolean[] visited = new boolean[n];
- private int[][] a = new int[n][n];
- private String result = "";
- private TreeSet set = new TreeSet();
-
- public static void main(String[] args) {
- new TestQuestion().start();
- }
-
- private void start() {
-
-
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- if (i == j) {
- a[i][j] = 0;
- } else {
- a[i][j] = 1;
- }
- }
- }
-
-
- a[3][5] = 0;
- a[5][3] = 0;
-
-
- for (int i = 0; i < n; i++) {
- this.depthFirstSearch(i);
- }
-
-
- Iterator it = set.iterator();
- while (it.hasNext()) {
- String string = (String) it.next();
-
- if (string.indexOf("4") != 2) {
- System.out.println(string);
- }
- }
- }
-
- private void depthFirstSearch(int startIndex) {
- visited[startIndex] = true;
- result = result + b[startIndex];
- if (result.length() == n) {
-
- set.add(result);
- }
- for(int j = 0; j < n; j++) {
- if (a[startIndex][j] == 1 && visited[j] == false) {
- depthFirstSearch(j);
- } else {
- continue;
- }
- }
-
-
- result = result.substring(0, result.length() -1);
- visited[startIndex] = false;
- }
- }
分享到:
相关推荐
前六章均为算法基础入门必会解答的题目,也就是若当中有任何一题, 您无法给出正确解答,就不算有算法基础(带星的题目例外), 并且这里不提供基础题解答,若你实在需要,请自行查资料或者找人帮你。 下文假定阅读...
PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 ...
JAVA经典算法题目,非常好的算法,实用,学习、面试起很大的作用。
从入门到进阶版的算法题目,有多种解法详细说明;
python算法趣味题目.doc
几道动态规划的经典算法 非常经典 值得分享
一道题目的算法优化过程 作者很详细的分析了算法的优化过程。
java算法编程题目及答案50道
算法题目集锦.pdf 讲算法的, 看看吧, 不错的资料
PTA数据结构与算法题目集部分题解,补充blog创建前的题解 PTA数据结构与算法题目集部分题解,补充blog创建前的题解 PTA数据结构与算法题目集部分题解,补充blog创建前的题解 PTA数据结构与算法题目集部分题解,补充...
acm算法题目,帮助我们提高算法的思想,有助于我们在算法竞赛中取得优异的成绩。
C++算法题目仓库.zip是一个包含C++算法题目和解答的压缩文件。该资源可以帮助学习C++的学生和开发者提高算法和编程能力,通过练习这些题目来加深对C++语言和算法的理解。 内容概要: 该压缩文件包含多个C++算法题目...
国外总结的算法题目,很有深度,没事儿的可以深入研究一下,成为世界级大佬指日可待
经典算法题目采用java做的很少的,大部分都是c的!
我博客中文章经典算法题目及思路解法总结的ppt,博客中的每个问题都在ppt中有详细的讲解,通过掌握这些算法,可以提高你的思维能力。
多个经典算法题目,包含java,c++,python解题代码,是您面试,软考的必备书籍。
c++ 经典 算法 程序 这是我们学校内部的资料,很完整的,循序渐进的学习c++编程是很有帮助的。
数据结构与算法课程设计题目汇编 1.Skip List的实现及分析 (1) 问题描述 Skip List作为有序链表结构的一种扩展,如下图所示,其中a是普通的单链表; 而b是在次基础上加上第二层(level 2)的额外指针,这些额外...