本文主要是介绍求数组元素和是K的倍数的子串的最大长度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
序列中任意个连续的元素组成的子序列称为该序列的子串。现在给你一个序列P和一个整数K,询问元素和是K的倍数的子串的最大长度。
比如序列【1,2,3,4,5】,给定的整数K为 5,其中满足条件的子串为{5}、{2,3}、{1,2,3,4}、{1,2,3,4,5},
那么答案就为 5,因为最长的子串为{1,2,3,4,5};如果满足条件的子串不存在,就输出 0。
输入:
第一含一个整数N, 1 ≤ N ≤ 105 。
第二行包含 N 个整数pi ,pi表示序列P第i个元素的值。0 ≤ pi ≤ 105 。
第三行包含一个整数 K, 1 ≤ K≤ 105 。
import java.util.Scanner;public class Main {private int getKMaxLength(int[] nums, int[] sums, int k) {int n = nums.length;int[] max = new int[k];int[] min = new int[k];for (int i = 0; i < k; i++) {max[i] = -1;min[i] = n + 1;}int mod;for (int i = 0; i < n + 1; i++) {mod = sums[i] % k;//记录整个数组的同余前缀和的最小下标和最大下标max[mod] = Math.m
这篇关于求数组元素和是K的倍数的子串的最大长度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!