”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > CodeWars挑战解密:Least Larger,从基础到高级

CodeWars挑战解密:Least Larger,从基础到高级

发布于2025-05-03
浏览:290

[2

从CodeWars挑战中学习:最小Sharing Solusi Tantangan CodeWars: Least Larger, dari Dasar hingga aris

大家好!这次,我想分享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


我做出的解决方案

要完成这个挑战,我制作了一个称为Lustlarger的函数。以下是代码:


> a [i] && a [index]

它如何工作?

[2


我将较小的无穷大设置为比较的初始值。

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[i] && a[index] 

[2
  1. 我检查数组中的每个元素。

    必须满足两个条件:

    该元素大于参考元素(a [i])。
    • 该元素小于先前的比较(较小)。
    如果满足了两个条件,我更新较小的,并将元素索引保存在结果中。
  2. 如果有元素满足,则返回索引的功能。
    • 如果没有,结果仍然为-1。
      1. 使用示例
      console.log(dusellarger([[4,1,3,5,6],0)); //输出:3
    • 解释:
  3. 参考元素为4(在索引0中)。 大于4的元素是[5,6]。

      从元素中,最小的是5,其位置在索引3中。
    • 提前解决方案:简明
  4. 对于那些喜欢“真正的JavaScript”方法的人,我们可以使用默认方法(例如Filter,Math.min.min和FindIndex)将此解决方案写入一行代码:

&& x ========== math.min(... a.filter(y => y> y>> a [i]));

此代码执行相同的操作,但具有更有功能和简洁的样式。适合您想编写快速解决方案而没有太多其他变量的情况。
console.log(leastLarger([4, 1, 3, 5, 6], 0)); // Output: 3

现实世界中的案例研究 这样的函数实际上在各种实际情况下都非常相关。一些示例:

  • [2
  • 在票务系统中,我们通常需要找到高于某个价格的座位的最低价格(例如,以填补下一个座位)。
[2

创建时间表时,我们可以搜索比特定时间大的下一个最接近的时间,例如分配插槽会议或下一个任务。


[2
const leastLarger = (a, i) => a.findIndex(x => x > a[i] && x === Math.min(...a.filter(y => y > a[i])));
在仓库中,如果您需要找到一个仍然足以存储某些物品的容量最小的存储位置。


这个挑战看起来很简单,但是当我尝试时,我意识到整洁的逻辑非常重要。我喜欢这个挑战的是,这个概念在现实世界中有多么重要。

    哦,是的,如果朋友还有其他方法可以完成此挑战,请随时分享“评论”列,是的!谁知道,我们可以通过不同的方法互相学习。希望这种共享很有用,而且编码愉快! ?
版本声明 本文转载于:https://dev.to/rantidhanty/sharing-solusi-tantangan-codewars-least-larger-dari-dasar-hingga-1-baris-4daf?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3