java利用try...catch语句连续输入
Posted Arsenal_张文治
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java利用try...catch语句连续输入相关的知识,希望对你有一定的参考价值。
给你一个整数数组 nums 和一个整数 k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组:
子数组大小 至少为 2 ,且
子数组元素总和为 k 的倍数。
如果存在,返回 true ;否则,返回 false 。
如果存在一个整数 n ,令整数 x 符合 x = n * k ,则称 x 是 k 的一个倍数。0 始终视为 k 的一个倍数。
示例 1:
输入:nums = [23,2,4,6,7], k = 6
输出:true
解释:[2,4] 是一个大小为 2 的子数组,并且和为 6
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/continuous-subarray-sum
package JavaPackageOne; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; class Solution { public static boolean checkSubArraySum(int[] nums, int k) { int m = nums.length; if (m < 2) { return false; } Map<Integer, Integer> map = new HashMap<>(); map.put(0, -1); int remainder = 0; for (int i = 0; i < m; i++) { remainder = (remainder + nums[i]) % k; if (map.containsKey(remainder)) { int prevIndex = map.get(remainder); if (i - prevIndex >= 2) { return true; } } else { map.put(remainder, i); } } return false; } public static int[] stringToInt(String[] arr) { int[] ints = new int[arr.length]; for (int i=0; i<arr.length; i++) { ints[i] = Integer.parseInt(arr[i]); } return ints; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; while ((str = br.readLine()) != null) { try { // nums String[] arr = str.split(", "); String[] arr1 = arr[0].split(" = "); String[] numsArray = arr1[1].replace("[", "").replace("]", "").split(","); String[] arr2 = arr[1].split(" = "); int k = Integer.parseInt(arr2[1]); int[] nums = stringToInt(numsArray); System.out.println(checkSubArraySum(nums, k)); } catch (Exception e) { // e.printStackTrace(); // 回车一行就退出 break; } } } }
输入:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; while ((str = br.readLine()) != null) { // 执行的代码块 }
## String[]数组转int[]数组:
public static int[] stringToInt(String[] arr) { int[] ints = new int[arr.length]; for (int i=0; i<arr.length; i++) { ints[i] = Integer.parseInt(arr[i]); } return ints; }
以上是关于java利用try...catch语句连续输入的主要内容,如果未能解决你的问题,请参考以下文章