参数引入和全局变量引入实现-目标和

LCR 102. 目标和 - 力扣(LeetCode)

分析题意,画出决策树,其他的思路都跟前面讲过的类似: 

 

全局变量引入实现: 

全局变量的引入,需要手动处理回溯;

class Solution {
    int ret;    // 最终结果
    int sum;    

    public int findTargetSumWays(int[] nums, int target) {
        dfs(nums,target,0);
        return ret;
    }

    // pos 表示当前针对 nums[pos] 进行操作
    public void dfs(int[] nums,int target,int pos){
        // 递归出口
        if(pos == nums.length){
            if(sum == target){
                ret++;
            }
            return;
        }

        // 加
        sum = sum + nums[pos];
        dfs(nums,target,pos+1);
        sum = sum - nums[pos];        // 回溯
    
        // 减
        sum = sum - nums[pos];
        dfs(nums,target,pos+1);
        sum = sum + nums[pos];        // 回溯

    }
}

参数引入实现:

参数引入,回溯是默认实现的,sum值在每一层都是不变化的;

class Solution {
    int ret;    // 最终结果

    public int findTargetSumWays(int[] nums, int target) {
        dfs(nums,target,0,0);
        return ret;
    }

    // pos 表示当前针对 nums[pos] 进行操作
    public void dfs(int[] nums,int target,int pos,int sum){
        // 递归出口
        if(pos == nums.length){
            if(sum == target){
                ret++;
            }
            return;
        }

        // 加
        dfs(nums,target,pos+1,sum+nums[pos]);


        // 减
        dfs(nums,target,pos+1,sum-nums[pos]);

    }
}

(当全局变量是一个数组类型,比如int[],这种就适合全局变量引入,比如全排列那种类型的题目;而如果全局变量是一个整形类型或者一个单独的类型的时候,则考虑参数引入更合适一些,不需要手动去处理回溯)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/429530.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

视频拉流推流技术梳理

概况 视频的整个流程主要分为推流和拉流 摄像头场景: 摄像头捕捉视频画面,推流到服务器,服务器分发到CDN, 客户端从CDN地址拉流,客户端进行播放 直播场景: 主播通过手机,电脑等客户端&…

前端爬虫+可视化Demo

爬虫简介 可以把互联网比做成一张 “大网”,爬虫就是在这张大网上不断爬取信息的程序。 爬虫是请求网站并提取数据的自动化程序。 省流:Demo实现前置知识: JS 基础Node 基础 (1)爬虫基本工作流程: 向…

RK3568平台 USB基础知识

一.现实工作中USB实际例子 现象:把USB设备比如Android手机接到PC 右下角弹出"发现android phone"跳出一个对话框,提示你安装驱动程序 问1:USB设备插到电脑上去,接触到的对方设备是什么? 答1:…

yum 和 rpm

rpm说明 rpm -qa :列出所有已安装的软件包 [roothub ~] rpm -qa geoipupdate-2.5.0-1.el7.x86_64 ncurses-base-5.9-14.20130511.el7_4.noarch libndp-1.2-9.el7.x86_64 libfastjson-0.99.4-3.el7.x86_64 。。。 rpm -qf FILENAME :查找提供 FILENAME…

SwiftUI之CoreData详解(一)

coreData 是一种数据持久化的方案,是对SQLite的一种封装。一说到这种桌面化的数据库,我就无比的怀念Foxbase|Foxpro, 多好的数据库产品,被微软扼杀了,相当年教大学生妹子们国家二级数据库时都是手把手教的,呃~~~&#…

wordpress模板官网

移民wordpress主题 移民代办wordpress主题,适合做海外移民咨询的代理公司搭建wordpress企业官方网站使用。 https://www.jianzhanpress.com/?p5130 夏令营wordpress主题 绿色夏令营wordpress主题,适合做夏令营或户外拓展的公司搭建wordpress官方网站…

【动态规划】第十一届蓝桥杯省赛第二场C++ C组《数字三角形》(c++)

1.题目描述 上图给出了一个数字三角形。 从三角形的顶部到底部有很多条不同的路径。 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。 …

绝地求生:小团团曝被判8年:地图语音包或将下架,公会和主播被一锅端

这两天大家都在讨论某鱼平台办卡抽奖的事情。这件事发生之后没多久,某鱼平台里面的大量主播在同一时间停播,闲游盒认为大家应该也懂的,这次停播就是因为这些主播也参与了办卡抽奖,都需要接受调查,在两个月左右的调查中…

【项目实践】如何发掘用户隐性需求推送PUSH

1.背景 对比业界广告推荐、触达成熟的平台,例如抖音,小红书,淘宝,知乎等,都已经站在巨量数据的基础之上,具备了 “用户意图分析” 的能力,可以分析出 “用户的隐性需求”,假设我们同…

Python学习日记(一:List、Tuple、dictionary)

前言: 最近想拓展一下自己的知识面,特来学习一下python这门语言,因为之前学习过C语言,目前学习起来Python还不是特别费劲,也由此感叹C语言不愧是最基础的语言。不多废话,进入正题 概述: Pytho…

典中典之西电A测-气压测控仿真系统

兄弟,如果你看到这篇,只能说明你A测也挂了,没办法,哥们太菜了,抄的太假过不了你电有些老师的慧眼 这坨🐕⑩我先吃为敬 环境搭建可以参考这个兄弟的博客 一、题目要求 实现功能:使用 Arduino UNO 微控制器,搭建一个 PC 上位机远程气压检测控…

动态规划:LeetCode第10题 正则表达式匹配

题目: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1: …

C语言文件操作,linux文件操作,文件描述符,linux下一切皆文件,缓冲区,重定向

目录 C语言文件操作 如何打开文件以及打开文件方式 读写文件 关闭文件 Linux系统下的文件操作 open 宏标志位 write,read,close,lseek接口 什么是当前路径? linux下一切皆文件 文件描述符 文件描述符排序 C语言文件操…

【Linux从青铜到王者】进程信号

——————————————————————————————————————————— 信号入门 在了解信号之前有许多要理解的相关概念 我们可以先通过一个生活例子来初步认识一下信号 1.生活角度的信号 你在网上买了很多件商品,再等待不同商品快递的到来…

达梦、金仓、南大、瀚高、优炫:从社区建设看企业技术自信心

正文约950字,预计阅读时间2分钟 国产技术厂商在面对自身产品问题时,往往保持回避态度,不愿公之于众,主要原因有2方面: 1,产品技术层面问题较多,如某些根本性缺陷难以攻克,或问题发…

Python爬虫实战(基础篇)—13获取《人民网》【最新】【国内】【国际】写入Word(附完整代码)

文章目录 专栏导读背景测试代码分析请求网址请求参数代码测试数据分析利用lxml+xpath进一步分析将获取链接再获取文章内容测试代码写入word完整代码总结专栏导读 🔥🔥本文已收录于《Python基础篇爬虫》 🉑🉑本专栏专门针对于有爬虫基础准备的一套基础教学,轻松掌握Py…

vue 安装各种问题

新下载了个项目模板,安装包就遇到了各种各样问题 电脑:mac 使用npm i 等命令一直安装项目,然后一直报错 2534 info run canvas2.11.2 install node_modules/canvas node-pre-gyp install --fallback-to-build --update-binary 2535 info r…

Tomcat+Nginx的动静分离

1.反向代理多机 实验:Nginx要开启upstream(负载均衡)、location(url链接)、proxy_pass(反向代理) 配置:7-3做代理服务器;7-1 和 7-2做Tomcat服务器 关闭防火墙和selinux 1.准备配置 7-3安装nginx;7-1 和 7-2安装Tomcat&#xff…

Re61:读论文 PRP Get an A in Math: Progressive Rectification Prompting

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称:Get an A in Math: Progressive Rectification Prompting ArXiv网址:https://arxiv.org/abs/2312.06867 官方实现网站:PRP 官方代码:https://github.…

iOS 17.0 UIGraphicsBeginImageContextWithOptions 崩溃处理

在升级到iOS17后你会发现,之前版本运行的很好,这个版本突然会出现一个运行闪退。报错日志为*** Assertion failure in void _UIGraphicsBeginImageContextWithOptions(CGSize, BOOL, CGFloat, BOOL)(), UIGraphics.m:410 跟踪到具体的报错位置如下所示&a…