朋友們大家好!這次我想分享來自 CodeWars 的最小更大挑戰。這個挑戰確實令人興奮,因為它訓練了邏輯和系統思維,並給出了這個概念如何在現實世界中發揮作用的想法。來來來,我們一起討論一下!
因此,我們得到了一個數字數組和某個索引。我們的任務是找出比該索引處的元素大的最小數字,然後回傳索引。如果沒有匹配的數字,我們必須返回-1。
範例:
陣列:[4, 1, 3, 5, 6]
索引:0(參考編號為4)
結果是 3,因為大於 4 的最小數字是 5,它位於索引 3 處。
為什麼可以是3?
數組從0開始
所以:
4 : 索引 0
1 : 索引 1
3 : 索引 2
5 : 索引 3
6 : 索引 4
為了解決這個挑戰,我創建了一個名為 lessLarger 的函數。程式碼如下:
function leastLarger(a, i) { let smaller = Infinity; // Nilai pembanding awal let result = -1; // Default hasil kalau nggak ada elemen yang memenuhi for (let index = 0; index < a.length; index++) { if (a[index] > a[i] && a[index] < smaller) { smaller = a[index]; // Update nilai terkecil yang lebih besar result = index; // Simpan indeks elemen } } return result; // Kembalikan hasil }
初始化
陣列迭代
回傳結果
console.log(leastLarger([4, 1, 3, 5, 6], 0)); // Output: 3
說明:
對於那些喜歡「僅 JavaScript」方法的人,我們可以使用內建方法(如 filter、Math.min 和 findIndex)在一行程式碼中編寫此解決方案:
function leastLarger(a, i) { let smaller = Infinity; // Nilai pembanding awal let result = -1; // Default hasil kalau nggak ada elemen yang memenuhi for (let index = 0; index < a.length; index++) { if (a[index] > a[i] && a[index] < smaller) { smaller = a[index]; // Update nilai terkecil yang lebih besar result = index; // Simpan indeks elemen } } return result; // Kembalikan hasil }
這段程式碼做了同樣的事情,但風格更加實用和簡潔。非常適合您想要編寫快速解決方案而無需太多附加變數的情況。
這樣的函數其實在各種實際情況下都非常相關。一些例子:
訂票系統
任務調度
庫存管理
這個挑戰看起來很簡單,但是當我嘗試之後,我發現整潔的邏輯非常重要。我喜歡這個挑戰的原因是這個概念在現實世界中的應用程度。
喔對了,如果朋友們還有其他方法來完成這個挑戰,請不要猶豫在評論欄中分享,好啊!誰知道呢,我們可能會互相學習不同的方法。希望這次分享有用,祝您編碼愉快! ?
以上是分享 CodeWars 挑戰解決方案:最小規模,從 Basic 到 Aris的詳細內容。更多資訊請關注PHP中文網其他相關文章!