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)?'Наконец-то, вы угадали!':'Задача решена неверно!';