leetcode 525. Contiguous Array | 525. 连续数组(Java)
题目
https://leetcode.com/problems/contiguous-array/
题解
想到了这个题,不过和本题没什么关系,仅仅是想到了而已:
https://leetcode.com/problems/flip-string-to-monotone-increasing/
以及 flip-string-to-monotone-increasing 这道题的迷之解法:
int minFlipsMonoIncr(char * s){int z = *s == '0' ? 0 : 1;int o = *s == '0' ? 1 : 0;for(s++; *s; s++){if(*s == '0'){o = (z < o ? z : o) + 1;}else{o = (z < o ? z : o);z++;}}return z < o ? z : o;
}
回到本题
一看数据范围是 1~10000,就知道这题必须 O(n)。
先贴一下没有什么卵用的错误思路草稿:
(错误在于,假设在0的个数少于1的个数,当前num=0的情况下,在更新的时候,你不知道应该取多少个0才合适。既不能取全部0,因为全部0不一定取的到,又不知道如果不取全部0的话,到底应该取多少,所以这个思路不可行。)
折腾了一个小时,打补丁,最后发现思路有结构性缺陷。于是看了答案。
class Solution {public int findMaxLength(int[] nums) {int diff = 0;HashMap<Integer, Integer> map = new HashMap<>();// (diff, index)map.put(0, -1);int max = 0;for (int i = 0; i < nums.length; i++) {if (nums[i] == 0) diff++;else diff--;if (!map.containsKey(diff)) map.put(diff, i);else max = Math.max(max, i - map.get(diff));}return max;}
}
leetcode 525. Contiguous Array | 525. 连续数组(Java)相关推荐
- 525 Contiguous Array 连续数组
给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组. 示例 1: 输入: [0,1] 输出: 2 说明: [0, 1] 是具有相同数量0和1的最长连续子数组. 示例 2: 输入: ...
- 525. Contiguous Array两位求和为1的对数
[抄题]: Given a binary array, find the maximum length of a contiguous subarray with equal number of 0 ...
- leetcode 932. Beautiful Array | 932. 漂亮数组(分治法)
题目 https://leetcode.com/problems/beautiful-array/ 题解 没想出来,最后参考了[分治]通俗的官解分析 的思路. 推理过程 草稿 class Soluti ...
- LeetCode 525 连续数组/剑指 Offer II 011. 0 和 1 个数相同的子数组
题目链接:525. 连续数组 思路:前缀和+哈希表 由于「0 和 1 的数量相同」等价于「1 的数量减去 0 的数量等于 0」,我们可以将数组中的 0 视作 -1,则原问题转换成「求最长的连续子数组, ...
- LeetCode-笔记-525. 连续数组
LeetCode-笔记-525. 连续数组 6月份第三天前缀和了 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度. 示例 1: 输入: num ...
- java array缓存_有java数组
[JAVA零基础入门系列]Day10 Java中的数组 [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 D ...
- 《LeetCode力扣练习》第33题 搜索旋转排序数组 Java
<LeetCode力扣练习>第33题 搜索旋转排序数组 Java 一.资源 题目: 整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下 ...
- java中set怎么建int型_使用Array.setInt来填充Java中的数组
为了填充Java中的数组,我们使用Array.setInt()方法.java.lang.reflect.Array.setInt(Object array,int index,int value)方法 ...
- LeetCode——978. 最长湍流子数组(Longest Turbulent Subarray)——分析及代码(Java)
LeetCode--978. 最长湍流子数组[Longest Turbulent Subarray]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划(一维数组) (1)思路 (2) ...
最新文章
- 作为Web开发人员,我为什么喜欢Google Chrome浏览器
- word 2010中如何创建多级目录和多级列表
- C++静态全局变量问题
- Iris——整合Gorm持久化的Casbin的Example
- OpenGL绘图过程简述
- javaweb学习总结(四十五)——监听器(Listener)学习二
- [解决]电信彩信网关开发错误-SOAP_VERSIONMISMATCH
- 列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
- 低学历的人就不能创业了吗?
- 查询sql执行计划_使用SQL执行计划进行查询性能调整
- 零基础、转行学习Python是否还在纠结?这里告诉你答案!
- 怒爬某 Hub 资源就为撸了一个鉴黄平台
- 计算机辅助设计1(PS)期末考核试题,福师《计算机辅助设计1(PS)》期末试卷A卷...
- python名词_使用Python词性标记提取名词(循环)
- 双塔模型的瓶颈,究竟在哪?
- CTFHUB-SQL注入
- gdiplus 水印_GDI+ 实现透明水印和文字
- 使用setoolkit克隆钓鱼网站时修改网页错误的解决方法
- 《Mysql》必知必会读书笔记
- 千古奇文《钱本草》:看透金钱本质!
热门文章
- POJ - 2893 M × N Puzzle(n*m数码问题+逆序对结论)
- POJ - 1011 Sticks(dfs+剪枝)(好题!!)
- 基于python的搜索引擎论文_技术分享 - 基于python构建搜索引擎系列——(四)检索模型...
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数
- 1_2 AbstractFactoryMode 抽象工厂模式
- 40个Java多线程问题详解复习
- 2020年前必须掌握的数据库面试问题~
- SQL 查询语句总是先执行 SELECT?
- 解密华为云原生媒体网络如何保障实时音视频服务质量
- 网易工业级WebRTC应用实践深度解析