资讯专栏INFORMATION COLUMN

【译】JS基础算法脚本:求插入数字的最小索引

xingqiba / 3092人阅读

摘要:需求给出定两个参数,参数,参数查找参数插入数组时的最小索引思路数组重排序判断数组中是否包含的最小数,有,则返回其最小数的索引无,则返回其数组长度思路用变量存储大于中各元素的次数返回变量思路数组重排序查找大于的数组最小值的索引索引等于返

需求

给出定两个参数,参数1:arr,参数2:num;查找参数num插入数组时的最小索引

getIndexToIns([10, 20, 30, 40, 50], 35) should return 3.
getIndexToIns([10, 20, 30, 40, 50], 30) should return 2.
getIndexToIns([2, 5, 10], 15) should return 3.
思路1

数组重排序

判断数组中是否包含>=num的最小数,
有,则返回其最小数的索引;无,则返回其数组长度

function getIndexToIns(arr,num) {
    var newArr = arr.sort((a,b) => a-b);
    for(var i=0; i= num) {
            return i;
        }
    }
    
    return newArr.length;
}

getIndexToIns([5, 3, 20, 3], 5);
思路2

1.用变量存储num大于arr中各元素的次数
2.返回变量

function getIndexToIns(arr,num) {
    var counts = 0;
    for(var i=0; i arr[i]) {
            counts++;
        }
    }
    
    return counts;
}

getIndexToIns([5, 3, 20, 3], 5);
function getIndexToIns(arr,num) {
    arr.sort((a,b) => a-b);
    var i = 0;
    while(num > arr[i]) {
        i++
    }
    
    return i;
}

getIndexToIns([5, 3, 20, 3], 5);
思路3

1.数组重排序
2.查找大于num的数组最小值的索引
3.索引等于-1返回数组长度,否则返回索引

function getIndexToIns(arr,num) {
    var index = arr.sort((a,b) => a-b)
        .findIndex(a => a >= num);
    return index === -1 ? arr.length:index;
}

getIndexToIns([5, 3, 20, 3], 5);
思路4

直接把num插入arr中

sort()重排序

返回num索引

function getIndexToIns(arr,num) {
    arr.push(num);
    arr.sort((a,b) => a-b);
    return arr.indexOf(num);
}

getIndexToIns([5, 3, 20, 3], 5);
function getIndexToIns(arr,num) {
    return arr.concat(num).sort((a,b) => a-b).indexOf(num);
}

getIndexToIns([5, 3, 20, 3], 5);

有其他好的方法或思路的道友,不妨在沙发区神交一番。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87328.html

相关文章

  • javascript解三阶幻方谜题

    摘要:谜题三阶幻方。试将这个不同整数填入一个的表格,使得每行每列以及每条对角线上的数字之和相同。列出所有的整数填充方案,然后进行过滤。 /* * 谜题--三阶幻方。 * 试将1~9这9个不同整数填入一个3×3的表格,使得每行、每列以及每条对角线上的数字之和相同。 * 策略 * 穷举搜索。列出所有的整数填充方案,然后进行过滤。 * 亮点为递归函数getPermut...

    Render 评论0 收藏0
  • JS基础算法脚本:验证字符包含关系

    摘要:需求给出一个包含两个字符串的数组。方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回或。方法为数组中的每个元素执行一次函数,直到它找到一个使返回表示可转换为布尔值的值的元素。有其他好的方法或思路的道友,不妨在沙发区神交一番。 需求 给出一个包含两个字符串的数组。验证第二个字符的子字符全被第一个字符包含(忽略大小写)是则返回true;否则返回false mutation([he...

    isaced 评论0 收藏0
  • JS基础算法脚本:回文检测

    摘要:返回一个新的字符串,表示串转换为小写的调用字符。不会影响字符串本身的值。返回一个包含子字符的数组,确定分割位置。将数组中所有子元素拼接成一个字符串,不改变原数组。 需求 给出一个字符串,检测是否是回文,是则返回true,不是则返回false(忽略标点符号,大小写,空格) palindrome(A man, a plan, a canal. Panama) should return t...

    Turbo 评论0 收藏0
  • JS基础算法脚本:字符串截取及三种字符截取法差异

    摘要:如果长度超过给定的最大字符串长度第二个参数,则截断字符串第一个参数。对文章内容或方法有深刻理解,也请指点一二。 如果长度超过给定的最大字符串长度(第二个参数),则截断字符串(第一个参数)。 以...结尾返回截断的字符串。 truncateString(A-tisket a-tasket A green and yellow basket, 11) should return A-tis...

    YuboonaZhang 评论0 收藏0
  • 基于 Javascript 排序算法

    摘要:适用于数据比较少或基本有序的情况。插入排序时间复杂度为,空间复杂度为,属于稳定排序。算法适用于少量数据的排序。就像下图这样,可以理解桶的意思下图是整个排序过程示意图基数排序时间复杂度为,空间复杂度为,属于稳定排序。 写在前面 个人感觉:javascript对类似排序查找这样的功能已经有了很好的封装,以致于当我们想对数组排序的时候只需要调用arr.sort()方法,而查找数组元素也只需要...

    tommego 评论0 收藏0

发表评论

0条评论

xingqiba

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<