前端算法-搜索插入位置

简介: 前端算法-搜索插入位置

题目


给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

输入: nums = [1,3,5,6], target = 5
输出: 2


题解


我们根据题意来进行操作,进入函数后我们先声明一个index变量,在对出参nums使用indexOf方法,indexOf方法中接受的参数是出参target,我们将indexOf方法的返回值赋值给index变量,如果indexOf方法没有在出参nums中找到出参target则返回-1,接下来我们使用if语句进行判断当前index变量是否等于-1,如果与-1相等则是没有找到出参target,我们则使用push方法将出参target添加到出参nums的末尾,然后在使用sort方法对出参nums进行升序排序,排完序之后,在对出参nums使用indexOf方法进行查找出参target,并直接将indexOf方法的返回值返回出去,如果index变量不等于-1,我们则直接将index变量返回即可

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function(nums, target) {
    var index = nums.indexOf(target);
    if(index == -1){
        nums.push(target);
        nums.sort((a,b)=> a-b)
        return nums.indexOf(target);
    }
        return index;
};

我们这里还可以使用for循环的方式进行实现,我们对出参nums进行循环,在循环中我们先判断当前出参nums循环中的值和出参target是否相等,如果相等则直接返回变量i,如果不相等则去比较出参nums循环中的值是否比出参target大,如果是则直接返回变量i,如果上述条件不满足则去比较出参nums循环中的值是否大于或等于出参target,如果是则直接返回变量i,当循环结束后如果都没有返回值,则直接将当前出参nums的数据长度返回出去即可

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function(nums, target) {
      for (let i = 0; i < nums.length; i++) {
         if (nums[i] == target) {
           return i;
         }
         if (nums[i] > target) {
           return i;
         }
        if (nums[i] >= target) {
          return i;
        }
      }
      return nums.length;
};
相关文章
|
1月前
|
算法 前端开发 数据可视化
数据结构与算法在前端开发中的实际应用
本文将探讨数据结构与算法在前端开发中的实际应用,重点介绍在处理大规模数据、优化性能和提升用户体验方面的具体场景和解决方案。
|
1月前
|
算法 机器学习/深度学习 索引
【算法设计与分析】——搜索算法
【算法设计与分析】——搜索算法
40 1
|
1月前
|
算法 程序员 数据处理
算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解
算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解
|
3月前
|
算法 测试技术 C#
【动态规划】【记忆化搜索】【C++算法】664. 奇怪的打印机
【动态规划】【记忆化搜索】【C++算法】664. 奇怪的打印机
|
3月前
|
算法
【算法系列篇】递归、搜索和回溯(四)
【算法系列篇】递归、搜索和回溯(四)
|
3天前
|
算法
数据结构与算法-Trie树添加与搜索
数据结构与算法-Trie树添加与搜索
5 0
|
14天前
|
算法 前端开发
前端算法 岛屿的最大面积 DFS(深度优先搜索)
前端算法 岛屿的最大面积 DFS(深度优先搜索)
11 0
|
2月前
|
算法 测试技术 C++
【记忆化搜索】【剪枝】【C++算法】1553吃掉 N 个橘子的最少天数
【记忆化搜索】【剪枝】【C++算法】1553吃掉 N 个橘子的最少天数
|
2月前
|
算法 测试技术 C++
【动态规划】【记忆化搜索】【C++算法】664. 奇怪的打印机
【动态规划】【记忆化搜索】【C++算法】664. 奇怪的打印机
|
2月前
|
移动开发 算法 测试技术
【动态规划】【记忆化搜索】C++算法:546移除盒子
【动态规划】【记忆化搜索】C++算法:546移除盒子