首页 > 解决方案 > 如何在输出末尾添加句点?动态搜索广告

问题描述

最近收到一个 DSA 面试问题,如下所示:
Q1 - 给定 5 个元素,即 1,2,3,4,5 打印 _ _ [3 个空格] [简单排列问题]
Q1 的所有可能的唯一组合 -现在输出如下

1 2 3 , 1 2 4 , 1 2 5 , 1 3 2 , 1 3 4 , 1 3 5 , 1 4 2 , 1 4 3 , 1 4 5 , 1 5 2 , 1 5 3 , 1 5 4 , 2 1 3 , 2 1 4 , 2 1 5 , 2 3 1 , 2 3 4 , 2 3 5 , 2 4 1 , 2 4 3 , 2 4 5 , 2 5 1 , 2 5 3 , 2 5 4 , 3 1 2 , 3 1 4 , 3 1 5 , 3 2 1 , 3 2 4 , 3 2 5 , 3 4 1 , 3 4 2 , 3 4 5 , 3 5 1 , 3 5 2 , 3 5 4 , 4 1 2 , 4 1 3 , 4 1 5 , 4 2 1 , 4 2 3 , 4 2 5 , 4 3 1 , 4 3 2 , 4 3 5 , 4 5 1 , 4 5 2 , 4 5 3 , 5 1 2 , 5 1 3 , 5 1 4 , 5 2 1 , 5 2 3 , 5 2 4 , 5 3 1 , 5 3 2 , 5 3 4 , 5 4 1 , 5 4 2 , 5 4 3 . 

[注意最后一个符号必须是句号而不是逗号]

如何提出解决方案?我被困在这个

class Main {  
  public static void main(String args[]) { 
    
    for(int i = 1 ; i<6 ; i++){
      for(int j = 1 ; j<6 ; j++){
        for(int k = 1 ; k<6 ; k++){
            if( !(i == j || i == k || j==k )){ // No repetition allowed 
              System.out.print(i+" "+j+" "+k+" , ");
            }
          }
        }
      }
    } 
  }

此外,对新的或不同的解决方案持开放态度,但非常好奇是否有办法解决我提供的现有代码的问题。

标签: javaalgorithmdata-structures

解决方案


一些谷歌搜索将帮助您研究该主题。这是我发现的一篇文章,可以帮助您完成任务。

https://www.baeldung.com/java-combinations-algorithm

还要注意单词组合与排列的数学含义。在排列中,顺序确实很重要。

即 1,2,3 和 3,2,1 是两个不同的排列。但同样的组合。


推荐阅读