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

leetcode0525. 连续数组-medium

1 题目:连续数组

官方标定难度:中

给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。

示例 1:

输入:nums = [0,1]
输出:2
说明:[0, 1] 是具有相同数量 0 和 1 的最长连续子数组。

示例 2:

输入:nums = [0,1,0]
输出:2
说明:[0, 1] (或 [1, 0]) 是具有相同数量 0 和 1 的最长连续子数组。

示例 3:

输入:nums = [0,1,1,1,1,1,0,0,0]
输出:6
解释:[1,1,1,0,0,0] 是具有相同数量 0 和 1 的最长连续子数组。

提示:

1 <= nums.length <= 1 0 5 10^5 105
nums[i] 不是 0 就是 1

2 solution

代码

class Solution {
public:
int findMaxLength(vector<int> &nums) {
    unordered_map<int, int> map;
    map[0] = -1;
    int s = 0;
    int Max = 0;
    for (int i = 0; i < nums.size(); i++) {
        s += nums[i] * 2 - 1; // 映射成 -1 和 1;
        // cout << s << " ";
        if (map.find(s) != map.end()) {
            Max = max(Max, i - map[s]);
            //cout << i - map[s];
        }else{
            map[s] = i;
        }
    }
    return Max;
}
};

结果

在这里插入图片描述

相关文章:

  • Linux shift 命令使用详解
  • C++中使用ShellExecute函数调用其他窗口程序时,参数设置为隐藏,后续能通过发消息给这个被调用程序显示,能显示出来窗口吗
  • 汽车加气站操作工证书报考条件是什么?
  • 【计算机操作系统】第一章操作系统引论
  • 优选算法系列(4.前缀和 _下) k
  • Deepseek API+Python 测试用例一键生成与导出 V1.0.4 (接口文档生成接口测试用例保姆级教程)
  • OkHttp 的证书设置
  • QOpenGLWidget视频画面上绘制矩形框
  • Redis简单介绍和安装
  • 版本控制工具
  • 树莓派超全系列文档--(8)RaspberryOS实用程序
  • 【C#.NET】VS2022创建Web API项目
  • Spark大数据分析与实战笔记(第四章 Spark SQL结构化数据文件处理-02)
  • D3802ACF:高精度 PSR LED 恒流驱动电路详解
  • L2-3 龙龙送外卖(天梯赛)
  • mysql5.7无法启动报错处理无日志
  • 吴恩达机器学习笔记复盘(十二)逻辑回归的梯度下降和拟合问题
  • 《基于python游戏设计与实现》开题报告
  • 如何用JavaScript验证身份证号码?
  • vue 使用v-model实现父子组件传值——子父组件同步更新
  • 辽宁省委书记、省长连夜赶赴辽阳市白塔区火灾事故现场,指导善后处置工作
  • 中国人保不再设监事会,国寿集团未再设置监事长职务
  • 李在明涉嫌违反《公职选举法》案将于5月1日宣判
  • 王毅出席金砖国家外长会晤
  • 辽宁省信访局副局长于江调任辽宁省监狱管理局局长
  • 钟声:美以芬太尼为借口滥施关税,纯属“内病外治”