当前位置: 首页 > article >正文

C语言 | Leetcode C语言题解之第560题和为K的子数组

题目:

题解:

// 暴力美学:20行C代码
int subarraySum(int *nums, int numsSize, int k) {
    int count = 0;
    // 弄个大数组做个暴力的Hash表,大概4*20M*2=160M。用calloc初始化为全零。
    int *maps = (int *)calloc(1001 * 20001 * 2, sizeof(int));
    // 前缀和可能是负数,把指针放到中间位置
    int *map = maps + 1001 * 20001 * 1;
    // 补一个最前面的前缀和,用了下标0
    int sum = 0;
    map[sum]++;
    // 下标从1开始,注意=
    for (int i = 1; i <= numsSize; i++) {
        // 注意-1
        sum += nums[i - 1];
        if (map[sum - k] > 0) {
            count += map[sum - k];
        }
        map[sum]++;
    }
    free(maps);
    return count;
}

http://www.kler.cn/a/389867.html

相关文章:

  • Kafka参数了解
  • [CKS] K8S ServiceAccount Set Up
  • Linux设置socks代理
  • 如何提高自动驾驶中惯性和卫星组合导航pbox的精度?
  • docker之容器设置开机自启(4)
  • docker运行ActiveMQ-Artemis
  • 学习笔记大导航
  • GitHub Org如何运营
  • 新标准大学英语综合教程1课后习题答案PDF第三版
  • uni-app文章列表制作⑨
  • Mysql ERROR 1451 (23000) 外键处理异常
  • GEE 高阶:LandSCaPeN v1.0:一个支持分析景观结构、组成、过程、连通性和网络的Google Earth Engine工具箱
  • 解决部署RKE2或K3S-“docker.io/rancher/mirrored-pause:3.6\“: -无法拉取镜像办法
  • 位运算_判定字符是否唯一
  • 杨中科 .Net Core 笔记 DI 依赖注入2
  • 深入解析Hadoop:大数据处理的基石
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:为企业决策加速的核心力量(下)(14/30)
  • QToolbar工具栏下拉菜单不弹出有小箭头
  • 阿里云CDN稳定吗?
  • 如何在 Java 中使用 Canal 同步 MySQL 数据到 Redis
  • 【Java学习】电脑基础操作和编程环境配置
  • 华为OD机试真题---电脑病毒感染
  • 基因组编辑与CRISPR技术:基因治疗的革命性突破
  • 刷题---轮转数组
  • unity3d————延时函数
  • 鸿蒙生态的崛起:深度认知、机遇、挑战与案例分析