使用 JavaScript 解答 LeetCode 第 485 题,最大连续 1 的个数,简单难度。

题目

原题链接

本题目是 LeetCode 题库第 485 题,由此访问。

题目描述

给定一个二进制数组, 计算其中最大连续1的个数。

示例 1:

输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.

注意:

  • 输入的数组只包含 0 和 1。
  • 输入数组的长度是正整数,且不超过 10,000。

解题

AC 样例

/**
 * @param {number[]} nums
 * @return {number}
 */
var findMaxConsecutiveOnes = function(nums) {
  if(nums.length == 0) return 0;
  const arr = nums.join('').split('0');
  arr.sort();
  return arr[arr.length-1].length;
};

解题思路

这个题目很简单。简要来说就是将数组转为字符串格式后,对仅包含 0,1 的字符串进行处理,取最长连续字符。根据题目要求,仅考虑连续 1 的长度即可,所以以数字 0 为切割单位,即可得到所有连续 1 的字符串。将上述字符串按 Unicode 点位升序排序,最长的字符串就是字符串数组的末位,输出其字符串长度就是最终答案。