给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组。
示例 1:
输入: [0,1]
输出: 2
说明: [0, 1] 是具有相同数量0和1的最长连续子数组。

示例 2:
输入: [0,1,0]
输出: 2
说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。
注意: 给定的二进制数组的长度不会超过50000。
详见:https://leetcode.com/problems/contiguous-array/description/

Java实现:

class Solution {public int findMaxLength(int[] nums) {int res=0;int n=nums.length;int sum=0;Map<Integer,Integer> m=new HashMap<Integer,Integer>();m.put(0,-1);for(int i=0;i<n;++i){sum+=(nums[i]==1)?1:-1;if(m.containsKey(sum)){res=Math.max(res,(i-m.get(sum)));}else{m.put(sum,i);}}return res;}
}

C++实现:

class Solution {
public:int findMaxLength(vector<int>& nums) {int res = 0, n = nums.size(), sum = 0;unordered_map<int, int> m{{0, -1}};for (int i = 0; i < n; ++i){sum += (nums[i] == 1) ? 1 : -1;if (m.count(sum)){res = max(res, i - m[sum]);}else {m[sum] = i;}}return res;}
};

参考:http://www.cnblogs.com/grandyang/p/6529857.html

转载于:https://www.cnblogs.com/xidian2014/p/8909259.html

525 Contiguous Array 连续数组相关推荐

  1. leetcode 525. Contiguous Array | 525. 连续数组(Java)

    题目 https://leetcode.com/problems/contiguous-array/ 题解 想到了这个题,不过和本题没什么关系,仅仅是想到了而已: https://leetcode.c ...

  2. 525. Contiguous Array两位求和为1的对数

    [抄题]: Given a binary array, find the maximum length of a contiguous subarray with equal number of 0 ...

  3. LeetCode-笔记-525. 连续数组

    LeetCode-笔记-525. 连续数组 6月份第三天前缀和了 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度. 示例 1: 输入: num ...

  4. LeetCode 525 连续数组/剑指 Offer II 011. 0 和 1 个数相同的子数组

    题目链接:525. 连续数组 思路:前缀和+哈希表 由于「0 和 1 的数量相同」等价于「1 的数量减去 0 的数量等于 0」,我们可以将数组中的 0 视作 -1,则原问题转换成「求最长的连续子数组, ...

  5. c++ 的vector、array和数组的比较

    在c++11中,STL中提拱了一个新的容器std::array,该容器在某些程度上替代了之前版本的std::vector的使用,更可以替代之前的自建数组的使用.那针对这三种不同的使用方式,先简单的做个 ...

  6. C++Dynamic Array动态数组(附完整源码)

    Dynamic Array动态数组 Dynamic Array动态数组算法的完整源码(定义,实现,main函数测试) Dynamic Array动态数组算法的完整源码(定义,实现,main函数测试) ...

  7. linux获取连续数组下标值,shell 数组,双层循环打印变量

    双层循环,打印循环执行次数. 特别注意 ,shell 脚本赋值时 '=' 两侧不能有空格,否则报错,shell command not found 但在if 语句中需要有: STR1="ab ...

  8. js算法---寻找连续数组中的缺失数

    寻找连续数组中的缺失数 给定一个数组,给出上边界和下边界数据,里面的数是连续的,但是缺失了一个,要求找出这个缺失的数 例如:arr=[2,1,3,5,4,8,9,6] 一共9个数,已知上边界为1,下边 ...

  9. java 使用 java.util.Collections.addAll( list, array ) 将数组转成 list

    // java 使用 java.util.Collections 将数组转成 list List<String> list1 = new ArrayList<String>() ...

最新文章

  1. mysql编程的二维数组_调出mysql中数据,输出一个二维数组的表格
  2. 自动驾驶前沿报告!解密六大关键技术,全球人才分布
  3. oracle11g到底是什么6,Oracle11g六个重要进程
  4. 【每周NLP论文推荐】 介绍语义匹配中的经典文章
  5. style 字体加粗_第9篇 Qt Quick入门教程之基础(九)文本显示和字体
  6. 一款开源且功能强大的C#甘特图控件.NET Winforms Gantt Chart Control
  7. 【图像修复】基于matlab全变分TV+curvelet变换彩色图像修复【含Matlab源码 461期】
  8. python机器学习-糖尿病预测模型
  9. arduino/Mixly使用MAX30102心率传感器
  10. progeCAD 2009专业版
  11. C语言删除注册表某个键值,win7系统批量快速删除注册表中指定的某个键值的操作方法...
  12. oracle adpatch 回退,Oracle EBS使用adpatch工具打patch过程【Z】 - huak
  13. ajax英文翻译,Ajax[埃阿斯]英文名的中文翻译意思、发音、来源及流行趋势-千代英文名...
  14. c语言程序运行超时是怎么回事,这个运行超时是什么原因?求助~
  15. 5800p计算机公式,卡西欧fx-5800p计算器内置公式及公式自定义在隧道测量中的应用...
  16. Python从字典中提取子字典
  17. 分享一个matplotlib柱状图
  18. Python可视化34|matplotlib-多子图绘制(为所欲为版)
  19. Netty框架之Selector使用详解
  20. PHP5.3.5如何连接MSSql Server

热门文章

  1. android菜单详解四:子菜单
  2. flex4 BlazeDS 入门及配置
  3. 服务器计时器、Windows 计时器和线程计时器
  4. 《设计模式详解》行为型模式 - 命令模式
  5. 【Java从0到架构师】会话跟踪 Cookie_Session
  6. 如何在shell中执行 字符串拼接起来的命令 cmd = ls / 执行方法:$cmd
  7. [转]Linux内核基础与常用命令总结
  8. 专题_数字货币历史行情获取[博]
  9. jq多选按钮值_关于jquery的多选框获取值和状态回显
  10. wp7开发第一课:软件生命周期(其一)