当前位置: 首页 > 编程笔记 >

在JavaScript的排序数组中查找所需的数字

卢宜然
2023-03-14
本文向大家介绍在JavaScript的排序数组中查找所需的数字,包括了在JavaScript的排序数组中查找所需的数字的使用技巧和注意事项,需要的朋友参考一下

我们有一个整数数组,该数组按升序排序。我们需要编写一个JavaScript函数,该函数将一个数组作为第一个参数,并将目标和数作为第二个参数。

该函数应该从数组中查找并返回两个这样的数字,当它们相加时将给出目标和。解决此问题的条件是我们必须在线性时间内并使用恒定的空间来执行此操作。

示例

以下是代码-

const arr = [4, 6, 8, 9, 11, 12, 18, 21];
const num = 27;
const findElements = (arr = [], target) => {
   let left = 0;
   let right =arr.length- 1;
   let res = [];
   while (left < right) {
      let leftElement = arr[left];
      let rightElement = arr[right];
      if (leftElement + rightElement === target) {
         res.push(arr[left]);
         res.push(arr[right]);
         break;
      } else if (leftElement + rightElement > target) {
         right--;
      } else {
         left++;
      }
   }
   return res;
};
console.log(findElements(arr, num));
输出结果

以下是控制台输出-

[6, 21]

 类似资料:
  • 求一个未排序数组的中值,我们可以对n个元素做O(nlogn)时间的min-heap,然后我们可以逐个抽取n/2个元素得到中值。但是这种方法需要O(nlogn)时间。 我们能在O(n)时间内通过某种方法做同样的事情吗?如果可以,那么请告诉或建议一些方法。

  • 我试图找到给定排序数组的最大K数。 ex:输入- 到目前为止,我编写的代码返回最大的K元素,但它需要返回最大的K数字。任何帮助都将不胜感激。

  • 问题内容: 如何在N个可变长度的JavaScript数组中生成值的所有组合? 假设我有N个JavaScript数组,例如 (在此示例中为三个数组,但针对该问题的数组数为N。) 我想输出其值的所有组合,以产生 编辑:这是我使用ffriend接受的答案作为基础的版本。 问题答案: 这不是排列,请参阅Wikipedia中的排列定义。 但是您可以通过 递归 实现: 您也可以使用循环来实现,但是这会有些棘手

  • JavaScript箭头函数 let x = [1,2,3,4,5,6,7,8]; x.sort( (a,b) => b-a ); console.log(x); 实现逆序的原理是什么? 求大佬解惑

  • 问题内容: 我接受了采访,并且有以下问题: 在不到O(n)的时间内从排序数组中查找唯一数字。 我给出了解决方案,但这是O(n)的。 编辑: 排序后的数组大小约为200亿,唯一数约为1000。 问题答案: 分而治之 : 查看排序序列的第一个和最后一个元素(初始序列为)。 如果两者相等,则序列中的唯一元素是第一个(无论序列有多长)。 如果不同,则划分序列并为每个子序列重复。 一般情况下解决 O(log