JSFiddle - React, Tailwind, and code Playground
by Fuckomako
HTML
<div id='result'/>
JavaScript
function findN(array){
//На вход подается неупорядоченный массив с целыми числами от 1 до n,
//каждое число встречается по одному разу, кроме одного, оно отсутствует,
//необходимо определить какое и вернуть его.
//Желательно, чтобы вычислительная сложность была O(n)
let sumInteger = array.length * (array.length + 1) / 2;
let sumArray = array.reduce((acc, n) => acc + n, 0);
return sumInteger - sumArray;
}
/* const findN = array => (array.length + 2) * (array.length + 1) / 2 - array.reduce((acc, n) => acc + n, 0); */
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
const arraySize = getRandomInt(10, 1000);
const arr = [];
while(arr.length < arraySize){
arr.push(arr.length + 1);
}
function compareRandom(a, b) {
return Math.random() - 0.5;
}
arr.sort(compareRandom);
const removed = arr.pop();
console.log(findN(arr));
document.getElementById('result').innerText = (findN(arr) === removed)?'Наконец-то, вы угадали!':'Задача решена неверно!';