• 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编写实现题目的解决方案:

    1. public class Solution {
    2. public int countRangeSum(int[] nums, int lower, int upper) {
    3. int count = 0;
    4. for (int i = 0; i < nums.length; i++) {
    5. int sum = 0;
    6. for (int j = i; j < nums.length; j++) {
    7. sum += nums[j];
    8. if (sum >= lower && sum <= upper) {
    9. count++;
    10. }
    11. }
    12. }
    13. return count;
    14. }
    15. public static void main(String[] args) {
    16. int[] nums = {-2, 5, -1};
    17. int lower = -2;
    18. int upper = 2;
    19. Solution solution = new Solution();
    20. int count = solution.countRangeSum(nums, lower, upper);
    21. System.out.println(count);
    22. }
    23. }

    上述代码中,'countRangeSum'方法接受一个整数数组'nums'以及两个整数'lower'和'upper'作为参数。通过两层循环遍历数组,计算每个区间的和,并判断和是否在'lower'和'upper'之间。如果在范围内,则计数器'count'加1。最后返回计数器的值,即符合条件的区间和的个数。

    在'main'方法中,创建了一个示例数组'nums',设置了'lower'和'upper'的值,并调用'countRangeSum'方法进行计算和输出。

    (文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

  • 相关阅读:
    弘玑Cyclone荣登2022「Cloud 100 China」榜单
    Docker从认识到实践再到底层原理(八)|Docker网络
    C++:拷贝构造函数,深拷贝,浅拷贝
    Java练习题2022-1
    跨境电商首选腾讯云轻量应用服务器Lighthouse!
    “鼓浪屿元宇宙”,能否成为中国文旅产业的“升级样本”
    公共关系学试题及答案
    LeetCode 0670. 最大交换
    vue.js:哪些数组的方法是响应式的案例
    如何排查 Flink Checkpoint 失败问题?
  • 原文地址:https://blog.csdn.net/weixin_69763181/article/details/139402424