JavaScript中的連續1的旋轉


問題

我們需要編寫一個JavaScript函式,該函式以一個僅包含0和1的二進位制陣列(arr)作為唯一引數。如果我們最多可以翻轉一個0,我們的函式應該找到此陣列中連續1的最大數量。

例如,如果輸入到該函式的是 −

const arr = [1, 0, 1, 1, 0];

那麼輸出應該是 −

const output = 4;

輸出解釋

如果我們翻轉陣列中索引為1的0,我們將得到4個連續的1。

示例

程式碼如下 −

 即時演示

const arr = [1, 0, 1, 1, 0];
const findMaximumOne = (nums = []) => {
   let count = 0;
   let first = -1;
   let i =0, j = 0;
   let res = -Infinity;
   while(j < nums.length){
      if(nums[j] === 1){
         res = Math.max(res, j-i+1);
      }else{
         count++;
         if(count==2){
            i = first + 1;
            count--;
         };
         first = j;
      };
      j++;
   };
   return res;
};
console.log(findMaximumOne(arr));

輸出

控制檯中的輸出將是 −

4

更新於: 04-Mar-2021

127次瀏覽

開啟你的 職業 之旅

完成課程獲得認證

開始
廣告
© . All rights reserved.