当前位置:网站首页>leetcode:494.数组中添加加减运算符得到指定值的所有方法
leetcode:494.数组中添加加减运算符得到指定值的所有方法
2022-06-28 03:06:00 【OceanStar的学习笔记】
题目来源
题目描述

题目解析
暴力递归
定义:对于数组arr[idx…]中所有的数字,搞出rest这个数,方法是多少。
int process(std::vector<int>&arr, int idx, int rest);
base case:
- 当没有数了,就没有选择了,这个时候看rest是否为0,如果为0,表示找到了一种方法,其他都是没有找到方法
普通情况:
- 就是base case之外的情况,也就是还有数可以选择
- 这个时候,我们要决定对arr[idx]做出选择,做出选择就会对rest造成影响。最后将剩下的递归给arr[idx+1…]
备忘录
对于:
int process(std::vector<int>&arr, int idx, int rest);
只要可变参数idx和rest固定了,那么process的返回值也就固定了
因此,我们只要用一个map指缓存起来,然后如果有,就直接去查就可以,没有就去计算
暴力递归改动态规划
优化
原问题等同于: 找到nums一个正子集P和一个负子集N,使得总和等于target。即
s u m ( P ) − s u m ( N ) = = t a r g e t sum(P) - sum(N) == target sum(P)−sum(N)==target
同时有:
s u m ( P ) + s u m ( N ) = = s u m sum(P) + sum(N) == sum sum(P)+sum(N)==sum
上面两式相加,得到
2 ∗ s u m ( P ) = = t a r g e t + s u m ( n u m s ) 2 * sum(P) == target + sum(nums) 2∗sum(P)==target+sum(nums)
其中target + sum(nums)必须>=0且为偶数,否则等式不可能成立。
则问题转换为:有一些物品,第i个物品的重量为nums[i], 背包的容量为sum§,问:有多少种方式将背包【恰好填满】
边栏推荐
- 「运维有小邓」监控文件及文件夹变更
- Web APIs DOM-事件基础丨黑马程序员
- 如何给Eclips自动添加作者,时间等…
- Research and arrangement of electronic map coordinate system
- matlab习题 —— 符号运算相关练习
- Necessary software tools in embedded software development
- 多线程与高并发四:VarHandle与强软弱虚引用和ThreadLocal
- 资源管理、高可用与自动化(下)
- 荣耀v8 真机调试时不显示 Logcat 日志的解决办法
- What is the difference between slice and array in go question bank 12?
猜你喜欢

资源管理、高可用与自动化(中)

How does the open-ended Hall current sensor help the transformation of DC power distribution?

自用工具 猴子都会用的unity视频播放器

Web APIs DOM-事件基础丨黑马程序员

荣耀v8 真机调试时不显示 Logcat 日志的解决办法

service实现类里面为何一直报红

matlab习题 —— 矩阵的常规运算

View the SQL execution plan according to explain and optimize the SQL

从遇见大咖到成为大咖,昇腾AI开发者创享日给开发者带来无限可能

Self use tool unity video player that monkeys can use
随机推荐
事件委托的原理
Circular sliding auto adsorption UI tool that monkeys can use
数据库系列之MySQL配置F5负载均衡
启牛开的证券账户是安全的吗?如何开账户呢
数的每一位平方和
数据库
解析教育机器人的综合应用能力
crond BAD FILE MODE /etc/cron. d
Win10 如何删除系统盘大文件hiberfil.sys
第二轮红队免费公开课来袭~明晚八点!
多线程与高并发五:等待队列及Executor和线程池详解(重点)
View the SQL execution plan according to explain and optimize the SQL
Summary of SQL basic syntax for C #
启牛商学院赠送证券账户是真的吗?开户到底安不安全呢
SSH框架的搭建(下)
Paging query optimization in MySQL of database Series
TypeError:&nbsp;&# 039; module&amp;# 03…
友链须知
继承
INFO:&nbsp;HHH000397:&nbsp;Using…