2025年--Lc297-3427. 变长子数组求和--java版

1.题目


2.思路

首先子数组的取值范围是[a,b]

右区间b的话等于当前的索引i,

左区间a的话等于取max(0,i-nusm[i])

因为是子数组,使用确定完左边界的值,要挨个加元素到右边界num[i]

所以j小于等于i

3.代码实现

java 复制代码
class Solution {
    public int subarraySum(int[] nums) {
        int sum=0;
       for(int i=0;i<nums.length;i++)
       {
        int start=Math.max(0,i-nums[i]);
        for(int j=start;j<=i;j++)
        {
         //j=i=0
         sum=sum+nums[j];

        }
       }
       return sum;
        
    }
}
相关推荐
乐观主义现代人1 小时前
go 面试
java·前端·javascript
Y***89081 小时前
【JAVA进阶篇教学】第十二篇:Java中ReentrantReadWriteLock锁讲解
java·数据库·python
P***84391 小时前
SpringBoot详解
java·spring boot·后端
guslegend1 小时前
第2章:Linux服务器-Docker安装
java
5***26221 小时前
【SpringBoot】SpringBoot中分页插件(PageHelper)的使用
java·spring boot·后端
DanB242 小时前
Java(多线程)
java·开发语言·python
O***p6042 小时前
Java在分布式中的Archaius
java·开发语言·分布式
在繁华处2 小时前
JAVA实战:文件管理系统1.0
java·开发语言·前端
算法与编程之美2 小时前
Java数组动态扩容
java·开发语言·python·算法