小於當前數字的 JavaScript
在給定的問題陳述中,我們必須藉助 Javascript 找到小於當前數字的較小數字。因此,為了完成此任務,我們將跟蹤專案並將當前數字遞減 1 以獲得所需的結果。
理解問題陳述
問題陳述要求編寫一個函式,該函式將接收一個整數陣列作為輸入,並返回相同長度的陣列,其中每個元素顯示給定陣列中小於相應專案的數字的數量。例如,如果我們有一個數組 [5, 4, 3, 2, 1],則輸出應如下所示:[4, 3, 2, 1, 0]。
為了解決這個問題,我們將遍歷給定的陣列,並將每個專案與陣列中所有剩餘的專案進行比較,以獲取較小專案的數量。
上述問題的邏輯
因此,基本上我們將使用 reduce 和 filter 方法來迭代給定的輸入陣列,並且我們將生成一個新陣列,其中包含每個專案的較小數字的數量。Javascript 的 reduce 方法將接受兩個引數。在函式內部,我們將使用 Javascript 的 filter 方法獲取一個新陣列,其中包含所有小於當前數字的其他專案。然後,我們將獲取其長度以獲取較小數字的數量。然後將計數的值推送到結果陣列中,併為下一次迭代返回更新後的陣列。
演算法
步驟 1 - 透過在其中定義整數數字的陣列來啟動程式。
步驟 2 - 現在定義一個函式以獲取小於當前數字的小數字。
步驟 3 - 使用 reduce 方法開始回撥函式作為 res 和結果陣列的初始值作為 num。
步驟 4 - 在函式內部,使用 filter 方法定義一個新陣列來儲存給定陣列的所有較小數字。我們將獲得較小數字的長度。
步驟 5 - 將計數的值推送到結果陣列中,併為下一次遍歷返回更新後的 res 陣列。
演算法程式碼
const arr = [5, 4, 3, 2, 1];
//function to get the smaller number of current number
const smallerThanCurrent = (arr = []) => {
return arr.reduce((res, num, i) => {
const count = arr.filter(otherNum => otherNum < num).length;
res.push(count);
return res;
}, []);
};
console.log(smallerThanCurrent(arr));
複雜度
上述方法使用 Javascript 的 reduce 和 filter 方法,時間複雜度為 O(n^2)。reduce 方法用於獲得更具函數語言程式設計的方法。
結論
我們已經實現了給定問題陳述的解決方案,以查詢陣列中小於當前數字的數字的數量。但是對於大型陣列,程式的時間複雜度效率不高,我們可能需要使用比該程式更有效的方法。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP