Finding the closest number in a random set

前端 未结 6 1990
长情又很酷
长情又很酷 2021-01-01 05:23

Say I got a set of 10 random numbers between 0 and 100.

An operator gives me also a random number between 0 and 100. Then I got to find the number in the set that is

6条回答
  •  渐次进展
    2021-01-01 05:35

    • given an array called input, create another array of the same size
    • each element of this new array is the Math.abs(input[i] - operatorNumber)
    • select the index of the mininum element (let's call it k)
    • your answer is input[k]

    NB

    • sorting is not needed
    • you can do it without the extra array

    Sample implementation in JavaScript

    function closestTo(number, set) {
        var closest = set[0];
        var prev = Math.abs(set[0] - number);
    
        for (var i = 1; i < set.length; i++) {
            var diff = Math.abs(set[i] - number);
    
            if (diff < prev) {
                prev = diff;
                closest = set[i];
            }
        }
    
        return closest;
    }
    

提交回复
热议问题