994. 连续数组

994. 连续数组

  给一个二进制数组,找到 0 和 1 数量相等的子数组的最大长度

样例

样例 1: 输入: [0,1] 输出: 2 解释: [0, 1] 是具有相等数量的 0 和 1 的最长子数组。 样例 2: 输入: [0,1,0] 输出: 2 解释: [0, 1] (或者 [1, 0]) 是具有相等数量 0 和 1 的最长子数组。

注意事项

给出的二进制数组的长度不会超过 50,000。 public class Solution {     /**      * @param nums: a binary array      * @return: the maximum length of a contiguous subarray      */     public int findMaxLength(int[] nums) {         int sum;             int i1=0,i0=0;             int max=0;             HashMap hash=new HashMap<>(nums.length);             hash.put(0,-1);             for (int i=0; i                 if (nums[i]==0){                     i0++;                 }else{                     i1++;                 }                 sum=i1-i0;                 if (hash.containsKey(sum)){                     int last=hash.get(sum);                     max=Math.max(max,i-last);                 }else{                     hash.put(sum,i);                 }             }             return max;     } }


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部