首页 > 试题广场 >

如何添加运算符

[编程题]如何添加运算符
  • 热度指数:2227 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
给出一个数字N,对于数字序列 1,2,3 ... N。现在在其中插入“+”, "-", " ",使得表达式的和为M。" "的含义是把相邻的两个数字组成一个数。例如:1 + 2 3 - 4,含义是:1 + 23 - 4 = 20。
给出N和M,求出所有合法的序列的个数。

输入描述:
两个整数N,M ( 1 <= N <= 7, -100 <= M <= 100)


输出描述:
合法序列的个数
示例1

输入

7 0

输出

6

说明

样例中的六种合法序列
1+2-3+4-5-6+7
1+2-3-4+5+6-7
1-2 3+4+5+6+7
1-2 3-4 5+6 7
1-2+3+4-5+6-7
1-2-3-4-5+6+7
头像 牛客题解官
发表于 2020-06-05 17:25:12
题解 题目难度:中等难度 知识点:DFS 相关背景知识 递归是一种算法结构,回溯是一种算法思想 递归: 在函数中调用函数本身来解决问题 回溯: 通过不同的尝试来生成问题的解,有点类似于穷举,但是和穷举不同的是回溯会“剪枝”,意思就是对已经知道错误的结果没必要再枚举接下来的答案了,比如一个有序数列1, 展开全文
头像 白伟仝
发表于 2020-04-29 11:46:32
import java.util.*; public class Main { List<StringBuilder> f(int N){ List<StringBuilder> str = new ArrayList<>();//存储穷举 展开全文