Where do I belong(算法)

Posted 代码笔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Where do I belong(算法)相关的知识,希望对你有一定的参考价值。

题目

我身在何处?

先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。

举例:  where([1,2,3,4], 1.5) 应该返回  1 。因为  1.5 插入到数组  [1,2,3,4] 后变成  [1,1.5,2,3,4] ,而  1.5 对应的索引值就是1。 

同理,  where([20,3,5], 19) 应该返回  2 。因为数组会先排序为  [3,5,20] ,  19 插入到数组  [3,5,20] 后变成  [3,5,19,20] ,而  19 对应的索引值就是  2 。 

提示

Array.sort()

思路

先把指定的值加入数组,然后升序排序数组,最后用  indexOf() 方法返回传入值在数组中的位置。 

解法

function where(arr, num) {
  // Find my place in this sorted array.
  arr.push(num);
  arr.sort(function(v1,v2){
    return v1 - v2;
  });
  return arr.indexOf(num);
}

测试

where([10, 20, 30, 40, 50], 35) 应该返回  3 . 

where([10, 20, 30, 40, 50], 30) 应该返回  2 . 

where([40, 60], 50) 应该返回  1 . 

where([3, 10, 5], 3) 应该返回  0 . 

where([5, 3, 20, 3], 5) 应该返回  2 . 

where([2, 20, 10], 19) 应该返回  2 . 

where([2, 5, 10], 15) 应该返回  3 . 

 

以上是关于Where do I belong(算法)的主要内容,如果未能解决你的问题,请参考以下文章

Where do I belong

freeCodeCamp:Where do I belong

数组排序并找出元素索引--Where do I belong-FCC

算法笔记--数列分块

having和where的区别

POJ1741Tree(点分治)