首页 > 编程知识 正文

输入n个整数存入数组,有n个数存放在一维数组

时间:2023-05-06 02:10:10 阅读:267332 作者:3160

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的 任意个数之和 等于 target,并打印出所有结果的索引。

例如: nums = [1,5,8,17,29,33,39,11,16] ,target = 33
结果1:5 ,结果2:3,8,…

public class ArrayListTest { private static final int[] Data = {1,5,8,17,29,33,39,11,16}; private static final int target =29; public static void main(String[] args) { GetAllSubsets example = new GetAllSubsets(); example.populateSubset(Data, 0, new int[Data.length], 0, target); }}class GetAllSubsets { public void populateSubset(final int[] data, int fromIndex, final int[] result, final int resultLen, final int target) { if (target == 0) { printResult(Arrays.copyOf(result, resultLen)); return; } while (fromIndex < data.length && data[fromIndex] > target) { fromIndex++; } while (fromIndex < data.length && data[fromIndex] <= target) { result[resultLen] = fromIndex; populateSubset(data, fromIndex + 1, result, resultLen + 1, target - data[fromIndex]); fromIndex++; } } private void printResult(int[] copyOf) { StringBuilder sb = new StringBuilder(); for (Integer i : copyOf) { sb.append(i).append(","); } System.out.println(sb.deleteCharAt(sb.length() - 1).toString()); }}

例:nums = [1,5,8,17,29,33,39,11,16] ,target = 33 输出:
1,3,7
3,8
5

请问大家这个算法哪里出错了 为什么结果不全。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。