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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP