java - 我有一些代码可以打印给定数组的摘要,但想知道如何打印位置而不是总和中的值?

标签 java

import java.util.ArrayList;
import java.util.Arrays;

public class SumSet {

    static void sum_up_recursive(ArrayList<Integer> numbers, int target, ArrayList<Integer> partial) {
        int s = 0;
        for (int x : partial) {
            s += x;
        }
        if (s == target) {
            System.out.println("sum(" + Arrays.toString(partial.toArray()) + ")=" + target);
        }
        else if (s >= target) {
            return;
        }
        for (int i = 0; i < numbers.size(); i++) {
            ArrayList<Integer> remaining = new ArrayList<>();
            int n = numbers.get(i);
            for (int j = i + 1; j < numbers.size(); j++) {
                remaining.add(numbers.get(j));
            }
            ArrayList<Integer> partial_rec = new ArrayList<>(partial);
            partial_rec.add(n);
            sum_up_recursive(remaining, target, partial_rec);
        }
    }

    static void sum_up(ArrayList<Integer> numbers, int target) {
        sum_up_recursive(numbers, target, new ArrayList<>());
    }

    public static void main(String[] args) {
        Integer[] numbers = { 5, 5, 10, 15 };
        int target = 15;
        sum_up(new ArrayList<>(Arrays.asList(numbers)), target);
    }
}

当前输出是:

sum([5, 10])=15
sum([5, 10])=15
sum([15])=15

我试图弄清楚如何获得输出来打印数组的位置:

sum([3]) = 15
sum([0,3)] = 15
sum([1,3)]=15

最佳答案

如果我正确理解你的问题,你想打印原始列表中的位置,对吗?

在这种情况下,我建议您使用自定义元素类型,例如像这样的东西:

class PositionalElement {
  final int position;
  final int value;

  public PositionalElement( int pos, int val ) {
    position = pos;
    value = val;
  }
}

int[] numbers = new int[] {5,5,10,15};
List<PositionalElement> elements = new ArrayList<>();
for( int i = 0; i < numbers.length; i++ ) {     
  elements.add( new PositionalElement( i, numbers[i] ) );
}

这样,在打印输出时,您可以自由使用每个元素的和/或位置

关于java - 我有一些代码可以打印给定数组的摘要,但想知道如何打印位置而不是总和中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55360502/

相关文章:

Java,Hibernate 注释,如何向 POJO 对象添加方法?

java - Firebase Firestore : Document is not mapping to Model class

java - 调用开发服务器(在本地主机上)时,Google Cloud Endpoints 传递带有空字段的对象

java - 在Java中执行groovy文件

java - 在 Java 中退出一个 "for loop"

java - CachingAuthenticator 在 Dropwizard 中的使用

java - 发送 http post 请求不起作用

java - 如何与计算并行/在另一个线程中重新绘制()我的 JPanel?

java - 正则表达式无法正常工作

java - 对字符串进行位移位