朋友们大家好!这次我想分享来自 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中文网其他相关文章!