【leetcode】3524 求出数组的X值1

题目链接

题目描述

给你一个正整数数组 nums 和一个正整数 k。

你可以对数组执行一次操作:移除不重叠的前缀和后缀(可以为空),留下一个连续非空子数组。

对于每一种留下的子数组,计算:

(该子数组的乘积) % k = x

你需要统计所有可能的结果 x ∈ 0, k-1 出现的次数,返回一个长度为 k 的数组 result,其中:

resultx 表示得到 x 作为余数的方案数

解题思路

你可以移除任意前缀和后缀 ,留下的是一个非空的连续子数组。

也就是说:我们其实是统计所有子数组的乘积模 k 的结果分布

直接采用动态规划进行转移

java 复制代码
class Solution {
    public long[] resultArray(int[] nums, int k) {
        long[] ans = new long[k];
        long[] lurminexod = new long[k];

        for (int i : nums) {
            long[] newlurminexod = new long[k];
            
            for (int j = 0; j < k; j++) {
                int index = (int)(((long)j * i) % k);
                newlurminexod[index] += lurminexod[j];
            }
            newlurminexod[i % k]++;
            lurminexod = newlurminexod;

            for (int j = 0; j < k; j++) {
                ans[j] += lurminexod[j];
            }
        }

        return ans;
    }
}
相关推荐
海石43 分钟前
1563分的简单题,可能就简单在能被暴力AC
算法·leetcode
海石1 小时前
1400分的dp汗流浃背之【交替子数组计数】
算法·leetcode
奋发向前wcx1 小时前
P2590 树的统计 题目解析
数据结构·算法·深度优先
imbackneverdie2 小时前
AI4S不止于分子药物:以MedPeer为代表的科研基建打开产业新增量
大数据·人工智能·算法·aigc·科研·学术·ai 4s
额鹅恶饿呃3 小时前
C语言中的数据结构和变量
c语言·数据结构·算法
运行时记录4 小时前
prompt-optimizer skill
算法
万法若空4 小时前
【数据结构-哈希表】哈希表原理
数据结构·算法·散列表
退休倒计时5 小时前
【每日一题】LeetCode 437. 路径总和 III TypeScript
算法·leetcode·typescript
学逆向的5 小时前
汇编——内存
开发语言·汇编·算法·网络安全
tachibana25 小时前
hot100 翻转二叉树(226)
java·数据结构·算法·leetcode