美文网首页
字节跳动,腾讯大厂面试专题——力扣(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