魔法师 (@Constanline) 在 Leetcode每日一题 —— 3524. 求出数组的 X 值 I 中发帖
思路
看题可以用dp。设 f(i,j) 代表 前i个数,取第i个数时,模k余j的方案数。
那么 f(i,j)=g(x)=∑f(i-1,nums[i]*x MOD k)。
然后把dp求和就是答案。
代码
class Solution {
public long[] resultArray(int[] nums, int k) {
long[] ans = new long[k];
// dp[i][j]表示前i个数,取第i个数时,模k余j的方案数
// 因dp只与dp[i-1]相关,此处以降为1维
int[] dp = new int[k];
for (int num : nums) {
int[] next = new int[k];
int b...