java - 有没有办法以省时的方式列出给定总和的所有子数组?
问题描述
我正在用 Java 实现纸牌游戏。我有一组卡片,每张卡片都有一个价值,因为:
我选择一张卡片 X(假设它的值为 8)
X:8
我有一个 ArrayList 卡片及其值
[A:5,B:2,C:2,D:1,E:1]
我想列出与卡片 X 的值匹配的所有可能的卡片总和组合,即
[A,B,D],[A,B,E],[A,C,D],[A,D,E]
解释: [A, B, D] => A + B + D = 5 + 2 + 1 = 8
代码:
if (card.GetValue() < valore) {
int i = Tavolo.indexOf(card);
int j = i + 1;
int currentsum = card.GetValue();
if (i < Tavolo.size() - 2) {
while (j <= (Tavolo.size() - 1)) {
Carta d = Tavolo.get(j);
currentsum += d.GetValue();
AggiungiPotenziale(index, d);
if (currentsum == valore) {
AggiungiPotenziale(index, card);
index++;
currentsum = card.GetValue();
}
if (currentsum > valore) {
RimuoviPotenziale(index);
}
j++;
}
if (currentsum < valore) {
RimuoviPotenziale(index);
}
}
}
解决方案
推荐阅读
- javascript - 按对象内的值对数组对象进行角度排序
- ios - 收到推送通知时,iOS App 未重新启动
- javascript - 排除文件名的正则表达式
- ios - 在分段控制中调用按钮操作
- powershell - 如何使用 powershell 将所选文件显示到文本框 GUI?
- c# - 如何在 asp.net 中格式化日期时间的显示,将 datepicker 引导为 dd/MM/yyyy?
- python - 使用 python selenium/Beautifulsoup 从多个页面中提取数据
- flask - 我们应该在 wsgi 烧瓶部署中关闭 msyql 连接吗?
- java - 转换流
> 列出 - swagger - 如何在 OpenAPI 3.0.0 的 securitySchemes 中使用“in”?