• 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过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

  • 相关阅读:
    Trino 387 JVM 配置详解
    Hyperledger Fabric 2.x 自定义智能合约
    Git---idea中git的基本操作
    Word控件Spire.Doc 【图像形状】教程(3) :在 C#/VB.NET 中的指定位置插入图像
    C#的无边框窗体改变大小解决方案 - 开源研究系列文章
    SpringMVC如何实现重定向和转发呢?
    IE URL传参问题
    中心化决议管理——云端分析
    Vue3 + Tsx 集成 ace-editor编辑器
    Model/ModelAndView
  • 原文地址:https://blog.csdn.net/weixin_69763181/article/details/139402424