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

题目链接

题目描述

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

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

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

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

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

result[x] 表示得到 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;
    }
}
相关推荐
椰羊~王小美4 小时前
LeetCode -- Flora -- edit 2025-04-27
算法·leetcode·职场和发展
缘友一世5 小时前
从线性回归到逻辑回归
算法·逻辑回归·线性回归
前端_学习之路6 小时前
javaScript--数据结构和算法
javascript·数据结构·算法
迷路的小绅士6 小时前
计算机网络核心知识点全解析(面试通关版)
计算机网络·面试·职场和发展
weixin_428498496 小时前
使用HYPRE库并行装配IJ稀疏矩阵指南: 矩阵预分配和重复利用
算法·矩阵
雾削木8 小时前
mAh 与 Wh:电量单位的深度解析
开发语言·c++·单片机·嵌入式硬件·算法·电脑
__lost8 小时前
小球在摆线上下落的物理过程MATLAB代码
开发语言·算法·matlab
中小企业实战军师刘孙亮9 小时前
实体店的小程序转型之路:拥抱新零售的密码-中小企实战运营和营销工作室博客
职场和发展·小程序·创业创新·学习方法·业界资讯·零售·内容运营
mit6.82410 小时前
[Lc_week] 447 | 155 | Q1 | hash | pair {}调用
算法·leetcode·哈希算法·散列表