1168. 数组评分

这篇博客讨论了一个数组评分问题,给定一个数组nums、子数组长度k、评分阈值u和l,计算所有长度为k的子数组得分。当子数组和小于u时得1分,大于l时扣1分。博主提供了一个解决方案,遍历数组计算每个子数组的和并更新总分。最终返回所有子数组的总得分。
摘要由CSDN通过智能技术生成

1168. 数组评分

 

 

有一个数组numsnums,以及三个正整数k,u,lk,u,l
对于numsnums的所有长为kk的子段,如果它的总和小于uu,就得11分,如果它的总和大于ll,就扣11分。
请求出最终能获得多少分?

样例

样例输入:
nums = [0, 1, 2, 3, 4]
k = 2
u = 2
l = 5
样例输出:
0

说明

下列样例中,[0, 1, 2, 3, 4][0,1,2,3,4]所有的长为 22 的子段分别是[0, 1], [1, 2], [2, 3], [3, 4][0,1],[1,2],[2,3],[3,4],它们的和分别为1,3,5,71,3,5,7。其中 1<21<2,加一分,7>57>5,扣一分。总计00分。

注意事项

 

numsnums的长度为nn
1 \leq n \leq 10^5
1n1
0
5
nums_i
num
s
i
numsnums中的元素,
0 \leq nums_i \leq 10^5
0num
s
i
1
0
5
1 \leq k \leq n1kn
1 \leq u \leq l \leq 10^{10}
1ul1
0
10
最后的得分可以是负数。
输入测试数据 (每行一个参数)如何理解测试数据?
 
 
public class Solution {
    /**
     * @param nums: the array to be scored.
     * @param k: the requirement of subarray length.
     * @param u: if the sum is less than u, get 1 score.
     * @param l: if the sum is greater than l, lose 1 score.
     * @return: return the sum of scores for every subarray whose length is k.
     */
    public int arrayScore(List<Integer> nums, int k, long u, long l) {
        // write your code here.
        int sum = 0;
            long ret = 0;
            int i = 0;
            for (; i < k; i++) {
                ret += nums.get(i);
            }
            if (ret<u)sum++;
            if (ret>l)sum--;
            for (int j=0; i < nums.size(); ) {
                ret=ret-nums.get(j)+nums.get(i);
                if (ret<u)sum++;
                if (ret>l)sum--;
                // System.out.println(ret+","+sum);
                i++;
                j++;
            }
        return sum;
    }
}
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时代我西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值