当前位置: 首页 > 知识库问答 >
问题:

Leetcode组合和问题。理解第15行的问题

萧安怡
2023-03-14

你好,我是新来的数据结构,我有一些问题理解行ds.remove(ds.size()-1);。有谁能帮帮我吗?

类解决方案{

private void findCombinations(int ind,int[] arr,int target,List<List<Integer>> ans, List<Integer> ds)
{
    if(ind == arr.length)
    {
        if(target == 0)
            ans.add(new ArrayList<>(ds));
        return;
    }
    if(arr[ind] <= target)
    {
        ds.add(arr[ind]);
        findCombinations(ind, arr, target - arr[ind], ans, ds);
        ds.remove(ds.size() - 1);
    }
    findCombinations(ind + 1, arr, target, ans, ds);
}

public List<List<Integer>> combinationSum(int[] candidates, int target) {
    List<List<Integer>> ans = new ArrayList<>();
    findCombinations(0, candidates, target, ans, new ArrayList<>());
    return ans;
}

}

共有1个答案

凌嘉志
2023-03-14

ds.size()是数组内的元素数,例如有2个元素,如果你想得到最后一个元素的索引,你必须说<--plhd-1/>() - 1,因为第一个元素的索引为0,第二个元素的索引为1

 类似资料:
  • 这里是连续子数组和的问题,我的问题是这个问题期望和为真,这意味着有一个子数组可以被3的因子整除。我不明白这是怎么回事,对我来说,这显然是假的,但所有提交返回为真的这个测试。有人能解释一下我可能漏掉了什么吗?

  • 我在UML中遇到了和关系的一些问题,我确实理解整体/部分关系,所以如果一个类不能没有它的整体而存在,那么它就成为一个强的组合关系,如果它仍然可以没有它的整体而存在,那么它就成为一个弱的聚合关系。 然而,当处理真正的软件需求时,有时会变得更加棘手。我有一个下面的类图,包括所有必要的属性、操作和特性,它们都正确地显示在UML标准中,但是我不确定我的关系: 1 接口和 6 类 有人可以确认我的关系是否正

  • 我在做LeetCode问题2,加两个数字。说明如下: 给定两个非空链表,表示两个非负整数。数字以相反的顺序存储,它们的每个节点都包含一个数字。将这两个数字相加,并以链表形式返回总和。 您可以假设这两个数字不包含任何前导零,除了数字0本身。 示例: 输入: l1=[2,4,3], l2=[5,6,4] 输出:[7,0,8] 说明:342465=807。 注意:两个链表的长度可以不同 我的想法是把l1

  • 我正在使用Spring Can Data Flow 1.7.2。发布并尝试关注这篇博文 创建一个“将处理器接收器组合到单个应用程序中:“一个新的接收器”。” 当我将代码作为博客的示例进行结构化时,我遇到了一些问题,我认为这是因为博客的示例使用了java。util。类似于处理器的函数。 我想我应该使用java。util。消费者,因为我正在尝试将现有接收器更改为处理器接收器混合 我的班级是这样的: 我

  • 我在wpf c#应用程序中有一个组合框。在xaml中,我尝试执行以下操作。 ItemsSource 来自一个变量。选定项在另一个变量上设置值 但我希望显示的文本来自一个新变量。 如何停止使所选项目源显示为正文?

  • 问题描述 这道题是 LeetCode 51题。 将 $n$ 个皇后放置在 $n×n$ 的棋盘上,并且使皇后彼此之间不能相互攻击。即同一行、同一列、同一对角线只能有一个皇后。 思路简述 N 皇后问题是回溯法的一个经典案例。回溯法是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。当探索到某一步,发现原先选择并不优或达不到目标时,就退回一步重新选择。 回溯法通常采用递归实现。对本题而言,搜