序列元素和是k的倍数的最大子串长度
来源:互联网 发布:mac os 顶部菜单栏 编辑:程序博客网 时间:2024/05/29 08:36
给一个定长的元素集,求子串中元素和是K的倍数的最大子串长度。
输入第一行数序列长度,输入第二行是序列各元素值,第三行是整数K
输出序列元素子串和是K倍数的最大长度
分析:
1.元素子串是否都能考虑到,两层循环就可以穷举
2.字串和计算,并不停比对是否是K倍数,若是记录子串长度
3.输出最长子串长度
public class RatioSubstring { public static void main(String[] args) { Scanner in = new Scanner(System.in); int m; m = in.nextInt(); int[] input = new int[m]; int i; for (i = 0; i < m; i++) { input[i] = in.nextInt(); } int k; k = in.nextInt(); int sum = 0; int j = 0; int l = 0; int maxL = 0;//更新子串最大长度 for (i = 0; i < m; i++) { for (j = i; j < m; j++) { sum = sum + input[j]; sum = sum % k;//取余,也是为了让累加和更小 if (sum == 0) l = j - i + 1;//余数为零,记录子串长度 } if (l > maxL) //一轮循环更新最大子串长度 maxL = l; sum = 0;//下一轮更换子串起点,累加值清零 } System.out.println(maxL); }}
最开始用的是数组存储每个起点开始的最大子串长度,最后精简用一个变量存储。据说并没有全通过测试用例,不管怎样,贴出来分享,欢迎交流。
阅读全文
0 0
- 序列元素和是k的倍数的最大子串长度
- 求数组元素和是K的倍数的子串的最大长度
- 元素和是K的倍数的子串的最大长度
- 长度不超过k的最大连续子序列(单调队列)
- HDU 3415 Max Sum of Max-K-sub-sequence(长度不超过k的最大连续子序列和,单调队列)
- ZOJ 1569 对于给定序列,问有多少子序列的和是m倍数
- 最大连续长度不超过m的子序列和
- 上升子序列的最大和!长度不一定最长
- 两个子字符串中所共同拥有的长度最大的子序列是多长
- 求最大公共子序列的长度
- 最大子序列的和
- 和最大的子序列
- 子序列的最大和
- 子序列的最大和
- 【最大子序列的和】
- 最大子序列的和
- java实现连续子数组的最大和(子向量的长度至少是1)
- 求数组(只有正数)中元素和为K的最长子数组的长度
- 【C语言】【unix c】文件的打开与文件的关闭(系统调用函数)
- windows下配置Caffe
- STM32八种输入输出模式详解
- python基础一
- Welcome Aboard
- 序列元素和是k的倍数的最大子串长度
- Oracle中的过滤和排序
- 【C语言】【unix c】文件写数据与文件读数据(系统调用函数)
- java中的代理和动态代理讲解
- MySQL中explain执行计划中额外信息字段(Extra)详解
- 折纸
- python基础方面二
- 关于HTMLdeform表单提交onclick和onsubmit
- web跳转解决转码问题