JS實現 LeetCode 陣列類演算法(四)

2021-08-21 14:09:20 字數 2253 閱讀 5175

更多演算法實現見:

分析:將陣列公升序排序後,遍歷陣列,在遍歷的過程中需排除k-diff對(i,j)中i重複以及k-diff對(i,j)中j重複的情況,之後再判斷(i,j)中 i 與 j 的差值是否等於 k。**如下:

var findpairs = function(nums, k) );  // 公升序排序

for(let i = 0; i < len; i++)

for (let j = i + 1; j < len; j++)

if (nums[j] == curr) }}

return count;

};

其他實現:

var findpairs = function(nums, k) 

j++}

} return res

};

**如下:

var arraypairsum = function(nums) );

for (let i = 1; i < nums.length; i = i + 2)

return sum;

};

分析:首先判斷原矩陣與重塑後的矩陣元素個數是否相同,如果不相同則返回原矩陣。如果相同則進行一下操作,將原矩陣的所有元素全部依次存進乙個陣列,遍歷陣列將陣列元素按照重塑矩陣的行列要求放入乙個新的二維陣列中,最後這個二維陣列即為重塑後的矩陣。**如下:

var matrixreshape = function(nums, r, c) 

let newarr = , resultarr = , count = 0;

for (var value of nums)

for (let i = 0; i < r; i++)

resultarr.push(currarr);

}return resultarr;

};

其他實現:

var matrixreshape = function(nums, r, c) 

for (let j = 0; j < r; j++)

return res

};

分析:將排序後的陣列與排序前的陣列進行比較,分別從前和從後遍歷兩陣列並進行比較,在遍歷過程中兩陣列出現差異的地方記錄下來,兩頭出現差異的索引相減就可計算處中間調換了順序的元素有多少個。**如下:

var findunsortedsubarray = function(nums) );

for (let i = 0; i < len; i++)

}for (let i = len - 1; i >= 0; i--)

}if (rightindex <= leftindex)

return rightindex - leftindex + 1;

};

其他實現:

var findunsortedsubarray = function(nums) 

return end - beg + 1

};

分析:根據計算相鄰兩個1之間有幾個數確定空位能種值花卉的最大數,再將所有空位種植花卉最大數相加即可得到整個花園還可種植花卉的最大數,即可確定最大能放多少。特別注意首尾的空位,要想在首尾能種植花卉就假設,陣列索引-2和length+1的位置值為1。**如下:

var canplaceflowers = function(flowerbed, n) 

}let curr2 = parseint((flowerbed.length + 1 - index) / 2) - 1; // 當陣列末尾還有一大部分的連續0出現時 需要將末尾能放置1的位置數一同加上 注意此處flowerbed.length + 1的原因與index初始值設為-2原因類似

sum += curr2 < 0 ? 0 : curr2;

return sum >= n ? true : false;

};

其他實現:

var canplaceflowers = function(flowerbed, n)  else if (flowerbed[i] === 1 && temp > 0) 

} ans += math.floor(temp / 2);

return ans >= n;

};

JS實現 LeetCode 陣列類演算法(一)

更多演算法實現見 思路 遍歷陣列,將陣列的某個元素與在該元素後面的其他元素進行求和,將和與目標值進行比較,若相等則返回兩元素的索引。如下 var twosum function nums,target 更好的實現 var twosum function nums,target for var i 0...

js 陣列,類陣列

1.陣列 一種特殊的物件 a 會改變原陣列的api push unshift pop shift splice sort reverse var arr 3,5,2,7,1,9,0,3 push 需要新增的引數值1,引數值n 向陣列末尾新增元素 可以是多個引數,就是向陣列新增多個元素 arr.pus...

js實現類繼承

為了讓自己能把繼承的實現機制理解得更透徹,還是決定看能不能通過自己的理解講述出來,以下文章如有不妥之處請積極批評指正,感激不盡。我們知道js中一切皆物件,但是當我們把流行的物件導向的語言特性套到js身上時卻略顯尷尬,為啥?js沒有提供繼承機制,這個得我們自己動手來模擬實現。不管是傳統的方法還是所謂的...