leetcode—和为K的子数组

发布时间:2024年01月18日

1 和为K的子数组

给你一个整数数组?nums?和一个整数?k?,请你统计并返回?该数组中和为?k?的子数组的个数?

子数组是数组中元素的连续非空序列。

示例 1:

输入:nums = [1,1,1], k = 2
输出:2

示例 2:

输入:nums = [1,2,3], k = 3
输出:2

方法一:

暴力枚举,但是运行是出现问题【不清楚为何运行不通过? —>? 原因:子数组为下标连续】

class Solution {
    public int subarraySum(int[] nums, int k) {
        // 方法一:暴力枚举
        // 计数 用于返回和为K的子数组个数
        int count = 0;
        // 遍历数组
        for(int i = 0 ; i < nums.length; i++){
            for(int j = i + 1; j < nums.length; j++){
                if(nums[i] + nums[j] == k){
                    count++;
                }
            }
        }
        return count;
    }
}

修改 之后代码:

class Solution {
    public int subarraySum(int[] nums, int k) {
        // 方法一:暴力枚举
        // 计数 用于返回和为K的子数组个数
        int count = 0;
        // 遍历数组
        for(int i = 0 ; i < nums.length; i++){
            int sum = 0;
            for(int j = i ; j < nums.length; j++){
                sum = sum + nums[j];
                if(sum == k){
                    count++;
                }
            }
        }
        return count;
    }
}

?

文章来源:https://blog.csdn.net/m0_67281369/article/details/135678501
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。