java - 有效地查找一组数字的组合

标签 java combinations memory-efficient

我目前正在开发一个java项目,我需要它的一部分来给我一个可以满足的数字组合列表
1<= A<=B<=C<=D<=E<=F<=N哪里N是任意整数 as small as 75这将被视为输入。 A B C D E F可以是any integer只要它fulfills the equality .

我知道我可以使用 brute force 简单地浏览每个组合。但这需要很长时间。我想要尝试做的是split等于 two separate平等的方式仍然满足原来的要求,但它会使运行时间减少近一半。

最佳答案

假设您想要满足指定条件的 A、B、C、D、E、F 的所有可能组合的列表,那么没有比暴力破解更有效的方法了 backtracking search .

对于A的每个可接受的值:找到B的所有可接受的值,然后对于每个可接受的值,找到C...等等。

您将获得等效的运行时间:

  • 分而治之
  • 动态规划
  • 贪婪(只会简化为回溯)

(但这些算法不适合这个问题,需要人为的实现)

关于java - 有效地查找一组数字的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13403747/

相关文章:

java - jdbc 代码中的错误 -> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : You have an error in your SQL syntax

java - 如何将带有 Case 语句的 Sql orderby 子句转换为 JOOQ?

java - CheckedTextView 在自定义 ListView 中不起作用

mysql - 在 MySQL 中插入时检查和防止相似的字符串

java - 如何使用 Java 中的某些解析器解析内存不足的 csv?

java - 创建抽象类的对象 - 错误

java - 找到组合,给定 n 个盒子和 x 个球

c# - C#中的具体组合,无法掌握

android - C++中类似于Android的ArrayMap的容器

javascript - 在 Javascript 中设置函数的最佳方式(可能通过闭包?)