algorithm-problem-leetcode-1981
1981. 最小化目标值与所选元素的差
给你一个大小为 m x n 的整数矩阵 mat 和一个整数 target 。
从矩阵的 每一行 中选择一个整数,你的目标是 最小化 所有选中元素之 和 与目标值 target 的 绝对差 。
返回 最小的绝对差 。
a 和 b 两数字的 绝对差 是 a - b 的绝对值。
示例 1:
1234567输入:mat = [[1,2,3],[4,5,6],[7,8,9]], target = 13输出:0解释:一种可能的最优选择方案是:- 第一行选出 1- 第二行选出 5- 第三行选出 7所选元素的和是 13 ,等于目标值,所以绝对差是 0 。
示例 2:
1234567输入:mat = [[1],[2],[3]], target = 100输出:94解释:唯一一种选择方案是:- 第一行选出 1- 第二行选出 2- 第三行选出 3所选元素的和是 6 ,绝对差是 94 。
示例 3:
1234输入:mat = [[1,2,9,8,7]], target = 6输出:1解释:最优的选择方案是选出第一行的 7 。绝对差是 1 。
提示:
m == m ...
algorithm-problem-leetcode-1155
1155. 掷骰子等于目标和的方法数(1654)
这里有 n 个一样的骰子,每个骰子上都有 k 个面,分别标号为 1 到 k 。
给定三个整数 n、k 和 target,请返回投掷骰子的所有可能得到的结果(共有 k^n 种方式),使得骰子面朝上的数字总和等于 target。
由于答案可能很大,你需要对 10^9 + 7 取模。
示例 1:
1234输入:n = 1, k = 6, target = 3输出:1解释:你掷了一个有 6 个面的骰子。得到总和为 3 的结果的方式只有一种。
示例 2:
1234输入:n = 2, k = 6, target = 7输出:6解释:你掷了两个骰子,每个骰子有 6 个面。有 6 种方式得到总和为 7 的结果: 1+6, 2+5, 3+4, 4+3, 5+2, 6+1。
示例 3:
123输入:n = 30, k = 30, target = 500输出:222616187解释:返回的结果必须对 109 + 7 取模。
提示:
1 <= n, k <= 30
1 <= target <= 1000
思路:多重背包(背包恰好装 ...