本文主要是介绍JAVA学习-练习试用Java实现“区间和的个数“,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题:
给你一个整数数组 nums 以及两个整数 lower 和 upper 。求数组中,值位于范围 [lower, upper] (包含 lower 和 upper)之内的 区间和的个数 。
区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。
示例 1:
输入:nums = [-2,5,-1], lower = -2, upper = 2
输出:3
解释:存在三个区间:[0,0]、[2,2] 和 [0,2] ,对应的区间和分别是:-2 、-1 、2 。
示例 2:
输入:nums = [0], lower = 0, upper = 0
输出:1
提示:
1 <= nums.length <= 105
-231 <= nums[i] <= 231 - 1
-105 <= lower <= upper <= 105
题目数据保证答案是一个 32 位 的整数
解答思路:
以下是使用Java编写实现题目的解决方案:
public class Solution {public int countRangeSum(int[] nums, int lower, int upper) {int count = 0;for (int i = 0; i < nums.length; i++) {int sum = 0;for (int j = i; j < nums.length; j++) {sum += nums[j];if (sum >= lower && sum <= upper) {count++;}}}return count;}public static void main(String[] args) {int[] nums = {-2, 5, -1};int lower = -2;int upper = 2;Solution solution = new Solution();int count = solution.countRangeSum(nums, lower, upper);System.out.println(count); }}
上述代码中,'countRangeSum'方法接受一个整数数组'nums'以及两个整数'lower'和'upper'作为参数。通过两层循环遍历数组,计算每个区间的和,并判断和是否在'lower'和'upper'之间。如果在范围内,则计数器'count'加1。最后返回计数器的值,即符合条件的区间和的个数。
在'main'方法中,创建了一个示例数组'nums',设置了'lower'和'upper'的值,并调用'countRangeSum'方法进行计算和输出。
(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)
这篇关于JAVA学习-练习试用Java实现“区间和的个数“的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!