我想在一个数组中求一个target
和,方法是将整数相加,直到达到target
和为止,然后使用流返回indexes和目标.
例如,如果提供的数组是{1, 2, 3, 4}
,而target
是4
,那么该方法应该打印出一个包含索引{0,2}
的int数组,但不打印.
代码如下:
public static int[] twoSum(int[] numbers, int target)
{
IntStream.of(0, numbers.length - 1).boxed()
.flatMap(i -> IntStream.range(i , numbers.length - 1).boxed()
.filter(j -> numbers[j] + numbers[i] == target)
.flatMap(j -> Stream.of(new int[]{i , j}, new int[] {j,i})))
.forEach(nu -> System.out.println(Arrays.toString(num)));
return numbers;
}
public static void main(String[] args)
{
System.out.println(Arrays.toString(twoSum(new int[]{1,2,5,1}, 4)));
}