首页 > 其他分享 >查找相差最小的数字

查找相差最小的数字

时间:2024-07-07 22:45:35浏览次数:11  
标签:map arr 相差 最小 item 查找 let diff const

const findClosestNumbers = (arr = [1, 2, 3, 4, 5, 6, 7, 8, 9], target = 3) => {
  let left = 0;
  let right = arr.length - 1;
  let minDiff = Infinity;
  let closestNumbers = [];

  while (left <= right) {
    const mid = Math.floor((left + right) / 2);
    const diff = Math.abs(arr[mid] - target);

    if (diff < minDiff) {
      minDiff = diff;
      closestNumbers = [arr[mid]];
    } else if (diff === minDiff) {
      closestNumbers.push(arr[mid]);
    }

    if (arr[mid] === target) {
      break;
    } else if (arr[mid] < target) {
      left = mid + 1;
    } else {
      right = mid - 1;
    }
  }

  return closestNumbers;
};

  

const findClosestNumbers = (arr = [1, 2, 3, 4, 5, 6, 7, 8, 9], target = 3) => {
  const map = [];
  arr.forEach((item) => {
    const diff = Math.abs(item - target);
    if (!map[diff]) {
      map[diff] = [];
    }
    map[diff].push(item);
  });
  return map[0] || map[map.findIndex((item) => !item) + 1];
};

  

标签:map,arr,相差,最小,item,查找,let,diff,const
From: https://www.cnblogs.com/zhenjianyu/p/18289040

相关文章

  • unity编辑器拓展,查找项目中预制体引用的组件或者脚本
    `usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEditor;usingUnityEngine.UI;usingSystem.Reflection;usingSystem;publicclassSearchComponent:EditorWindow{privatestringcomponentName="UnityEngine.......
  • Python算法模版:图论中的最小生成树算法
        最小生成树具有什么特性,相信学过相关知识的同学知道(没学过的可以自己了解一下),就是说最小生成树的边权值之和最小,相对应的其最大边权也是最小的,适合解决n个城市,m条边,然后叫你求最小划分路径是什么样的。Kruskal算法模版    首先,肯定要对题目所给的数据进......
  • 最小步数模型——AcWing 1107. 魔板
    最小步数模型定义最小步数模型通常是指在某种约束条件下,寻找从初始状态到目标状态所需的最少操作或移动次数的问题。这类问题广泛存在于算法、图论、动态规划、组合优化等领域。具体来说,它涉及确定一个序列或路径,使得按照特定规则执行一系列步骤后,能够从起始位置或状态转换到......
  • MATLAB算法实战应用案例精讲-【数模应用】偏最小二乘回归分析(PLS)(附MATLAB和python代码
    目录前言知识储备回归的方法回归的检验算法原理数学模型偏最小二乘回归建模原理:PLS的准则函数偏最小二乘基本算法​编辑 ​编辑PLS回归模型算法思想PLS回归与MLS、PCR、MRA比较SPSSAU案例应用其他说明SPSS示例(PLS命令) 变量列表(PLS命令) MODEL......
  • qoj8225 最小值之和 题解
    题目链接点击打开链接题目解法很牛的题啊从\(f\)序列的最小值切入,考虑把\(f_i:=f_i-f_{min}\),会对\(f'\)造成什么影响?发现会使\(f'\)中的每个数都减去\((n-1)f_{min}\),且会把原问题分成\([1,min]\)和\([min+1,r]\)这两个完全相同的子问题于是考虑区间\(dp\),令......
  • 34. 在排序数组中查找元素的第一个和最后一个位置(中等)
    34.在排序数组中查找元素的第一个和最后一个位置1.题目描述2.详细题解(1)朴素二分查找算法(2)改进二分查找算法3.代码实现3.1Python  方法一:  方法二:  方法三:优化方法二3.2Java1.题目描述题目中转:34.在排序数组中查找元素的第一个和最后一个位置2.详......
  • 树状数组实现 查找逆序对
     题意:输入一个整数n。接下来输入一行n个整数 。1<=  <=n ,且每个数字只会出现一次题解:按每个数字的大小存入树状数组#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstintN=10000;intarr[N];lla[N];intn;llquery(intx){ll......
  • 在Linux中,如何给最小化安装系统,进行基础优化?
    在Linux中,尤其是对于最小化安装的系统,进行基础优化可以显著提高系统的性能、稳定性和安全性。以下是一些针对最小化安装的Linux系统进行基础优化的步骤:1.更新系统首先,确保你的系统是最新的,这可以修复已知的安全漏洞和bug。使用以下命令进行更新:#对于基于Debian的系统(如Ubuntu......
  • 代码随想录算法训练营第十四天| 226.翻转二叉树 、101. 对称二叉树、104.二叉树的最大
    二叉树学习2226题翻转二叉树,改一下前序递归遍历,每次遍历的时候都调换一下左右结点即可。classSolution{public:voidpreorder(TreeNode*root){if(root==nullptr){return;}TreeNode*tmp;tmp=root->left;......
  • Day2 |977.有序数组的平方& 209.长度最小的子数组&59.螺旋矩阵II
    977.有序数组的平方这题太简单了,中间的排序我用的选择排序贴代码了publicint[]sortedSquares(int[]nums){for(inti=0;i<nums.length;i++){nums[i]=nums[i]*nums[i];}for(inti=0;i<nums.length;i++){......