给定一个二进制数组,找到一个连续的0和1相等的最大子数组。
来源:互联网 发布:bp神经网络算法流程图 编辑:程序博客网 时间:2024/05/21 15:01
本题源自leetcode 525
--------------------------------------------------------------------
思路:
1 用一个map 做映射 记录0 1 的数出现次数的差,值为数组下标。初始化mp[0] = -1;
代码:
int findMaxLength(vector<int>& nums) { int n = nums.size(); if(n == 0) return 0; unordered_map<int,int> mp; //记录 0 和 1的差值,以及下标 。 mp[0] = -1; int one = 0; int zero = 0; int len = 0; for(int i = 0; i < n;i++){ if(nums[i] == 0) zero++; else one++; if(mp.count(zero - one)){ len = max(len,i - mp[zero - one]); }else mp[zero - one] = i; } return len; }
阅读全文
0 0
- 给定一个二进制数组,找到一个连续的0和1相等的最大子数组。
- 给定一个数组,找出这个和最大的连续子数组的和
- 一个数组中只有0和1,求0和1个数相等的最大连续子序列?
- 求一个数组中连续子数组的最大和
- 在一个数组中找到连续的子数组最大的乘积
- 给定一个数组,返回最大子数组的累加和并且返回该子数组
- 一个正负数组,求其最大的连续子串和
- 给定一个整数数组,找到和为零的子数组。
- 面试题:给定一个数组,数组中只包含0和1。请找到一个最长的子序列,其中0和1的数量是相同的
- 在一个数组中找出和最大的一个连续的子数组串
- 一个数组中和最大的连续子数组
- 求一个数组中连续子数组的最大乘积
- 每天一道LeetCode-----找到给定数组的连续子数组,使这个子数组的和最大,要求复杂度为O(n)
- 给定数组的子数组最大和
- [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
- 求一个数组的和最大的连续子数组及扩展
- [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
- 求一个整数数组的连续子数组的最大和.
- 第十四周小结
- Expert Oracle Application Express, 2nd Edition.pdf 英文原版 免费下载
- Pycharm 2017 激活码
- 长按识别图中二维码
- 编写更少量的代码:使用apache commons工具类库
- 给定一个二进制数组,找到一个连续的0和1相等的最大子数组。
- ajax post 后台request.getParameter获取不到参数
- ecshop二次开发之视频上传
- Finance系列(1)之Introduction
- BZOJ 1211 HNOI2004 树的计数
- 机器学习sklearn19.0——集成学习——boosting与梯度提升算法(GBDT)、Adaboost算法
- 【转】【汇总】【二狗】CSS中常见块级元素和行内元素及其区别
- Mvp+OkHttp+XRecyclerView------上拉加载下拉刷新
- Unity游戏引擎游戏开发时遇到内存泄漏问题怎么办? 自研发的Unity游戏老是卡顿、闪退,有什么办法解决吗?