2020.8.10

1.面试题:
图片说明
2.算法题:

  • 485
    给定一个二进制数组, 计算其中最大连续1的个数。
    例:
    输入: [1,1,0,1,1,1]
    输出: 3
    解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是3。

    /**
    * @param {number[]} nums
    * @return {number}
    */
    var findMaxConsecutiveOnes = function(nums) {
      var i;
      var a=0;
      var b=0;
      var c;
      for(i=0;i<nums.length;i++){
          if(nums[i]==1){
              a++;
    
          }
          else{
              c=a;
              if(b>c){
    
              }
              else{
                  b=c;
              }
    
              a=0;
          }
      }
      if(b>a){
          return b;
      }
      else{
          return a;
      }
    };

    思路:a:计数1的数量,c:记录当前一次连续1的数量,b:记录最大连续1的数量;便利数组,判断是否为1;如果是,则a+1,反之则将当前连续1的数量赋值给c,判断b和c的大小,将其中大的值放在b中,遍历完以后,要考虑一种特殊情况,即数组仅有一个值,判断b与a的大小来判断是否仅有一个值,然后返回最大值。

全部评论

相关推荐

大叔叔1:你把自己说的话打码,所以你想表达什么
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务