美文网首页
字节跳动,腾讯大厂面试专题——力扣(35)搜索插入位置

字节跳动,腾讯大厂面试专题——力扣(35)搜索插入位置

作者: 纯粹的少年 | 来源:发表于2020-09-06 09:57 被阅读0次

题目

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
例如:
输入: [1,3,5,6], 5
输出: 2

解题思路

  • 根据题目我们可以知道给定一个排序的数组,在里面插入一一条数据,如果有这个数字,就返回当前数字的下标,如果没有,就插入并且返回该数字。
  • 这时候我们可以根据对象的特性,我们可以把数组的每一项当做对象的key值放入对象。
  • 然后我们把目标值,放入到对象中。
  • 之后我们遍历对象,把所有的key放入到新数组中。
  • 有趣的是,这样我们还需要考虑到负数的情况,负数就前增,正数后增
  • 然后我们返回这个数组中检索的target位置就完成了整个需求。
var searchInsert = function (nums, target) {
    var new_arr = []
    var obj = {};
    for (var i = 0; i < nums.length; i++) {
        obj[nums[i]] = nums[i];
    }
    obj[target] = target;
    for(var attr in obj){
        if(parseInt(attr)<0){
            new_arr.unshift(attr);
        }else{
            new_arr.push(attr)
        }
    }
    return new_arr.map(Number).indexOf(target)
};

相关文章

网友评论

      本文标题:字节跳动,腾讯大厂面试专题——力扣(35)搜索插入位置

      本文链接:https://www.haomeiwen.com/subject/dczqektx.html