【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;
    }
}
相关推荐
jackzhuoa34 分钟前
java小白闯关记第一天(两个数相加)
java·算法·蓝桥杯·期末
Codeking__2 小时前
链表算法综合——重排链表
网络·算法·链表
minji...2 小时前
数据结构 堆(4)---TOP-K问题
java·数据结构·算法
技术卷3 小时前
详解力扣高频SQL50题之610. 判断三角形【简单】
sql·leetcode·oracle
AI_Keymaker3 小时前
一句话生成3D世界:腾讯开源混元3D模型
算法
Leon_vibs3 小时前
当 think 遇上 tool:深入解析 Agent 的规划之道
算法
旧时光巷3 小时前
【机器学习-2】 | 决策树算法基础/信息熵
算法·决策树·机器学习·id3算法·信息熵·c4.5算法
落了一地秋3 小时前
4.5 优化器中常见的梯度下降算法
人工智能·算法·机器学习
前端伪大叔3 小时前
第 5 篇:策略参数怎么调优?Freqtrade hyperopt 快速入门
算法·代码规范
Code季风3 小时前
深入理解令牌桶算法:实现分布式系统高效限流的秘籍
java·算法·微服务