525 Contiguous Array 连续数组
2024-09-06 03:59:03
给定一个二进制数组, 找到含有相同数量的 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
最新文章
- 泛型-List<;T>;
- 一个简单的物料防错DEMO
- Day Two(Beta)
- C#页面前台绑定数据 <;%%>;<;%#%>;<;%=%>;
- Intrinsics头文件与SIMD指令集、Visual Studio版本对应表(转)
- 【XJOI-NOIP16提高模拟训练9】题解。
- FTP被动模式无法被传统CDN模式加速
- C 猜数游戏
- 05-0. 求序列前N项和(15)
- python 网络编程第一版
- UE4的编程C++创建一个FPSproject(两)角色网格、动画、HUD、子弹类
- 【原创】纯OO:从设计到编码写一个FlappyBird (一)
- Linux下一些命令
- 自定义Django的中间件
- Centos 7.0 execute yum update ——File ";/usr/libexec/urlgrabber-ext-down";, line 75, in <;module>; 解决方式
- 每个前端开发者必会的 20 个 JavaScript 面试题
- POJ-1573 Robot Motion模拟
- WebService-----Xfire
- 在docker中安装mysql
- Confluence 6 配置自动备份
热门文章
- 【2】按照Django官网,创建一个web app 创建app/创建相应的数据库表
- diamond简介和使用
- var和let的区别(详解)
- HDU 6113 度度熊的01世界 【DFS】(2017";百度之星";程序设计大赛 - 初赛(A))
- Random 类生成随机数
- regmap使用介绍【转】
- HDU1532 Drainage Ditches —— 最大流(sap算法)
- 机器学习 Hidden Markov Models 2
- [Selenium] Android HTML5 中 Application Cache
- [Selenium] Automation Test Manual(Selenium)