Leetcode刷题笔记题解(C++):LCR 102. 目标和

发布时间:2024年01月21日

思路:利用回溯去遍历,回溯结束条件为遍历到最后一个数字,如果符合target则目标数+1

class Solution {
public:
    //记录合为结果的数量
    int count = 0;
    int findTargetSumWays(vector<int>& nums, int target) {
        //利用回溯来寻找
        backtrack(nums,target,0,0);
        return count;
    }
    void backtrack(vector<int>& nums, int target,int index,int sum){
        //回溯条件满足时,如果加到最后一个数
        if(index == nums.size()){
            //最后的和为目标值则结果数++
            if(sum == target) count++;
        }
        //当回溯条件不满足时
        else{
            //回溯,加法;这里sum初始为0,index为0,则需要加上nums[0]
            backtrack(nums,target,index+1,sum+nums[index]);
            //回溯,减法;这里sum初始为0,index为0,则需要加上nums[0]
            backtrack(nums,target,index+1,sum-nums[index]);
        }
    }
};

文章来源:https://blog.csdn.net/qq_27524749/article/details/135726846
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。