Một mảng được cho là một mảng đặc biệt nếu tồn tại số nguyên dương num, sao cho có num phần tử lớn hơn num trong mảng. Số num không nhất thiết phải thuộc về mảng mà chỉ cần tồn tại.
Ví dụ - Nếu mảng đầu vào là -
const arr = [2, 1, 5, 2, 7, 9];
Sau đó, nếu chúng ta kiểm tra đúng cách, chúng ta sẽ thấy rằng đối với num =3, có chính xác 3 phần tử lớn hơn 3 trong mảng này.
Tuy nhiên, 3 không phải là một phần của mảng này, nhưng điều đó hợp lệ. Do đó, chúng tôi bắt buộc phải viết một hàm JavaScript có trong một mảng các Số.
Hàm phải trả về số xung quanh nó là đặc biệt, (nếu nó đặc biệt chút nào), nếu không thì hàm phải trả về -1.
Ví dụ
const arr = [2, 1, 5, 2, 7, 9]; const findSpecialArray = (array = []) => { const arr = array.slice().sort((a, b) => a - b); let index = 1; const { length } = arr; while(index <= arr[length-1]){ let num = 0; for(let i=0; i<length; i++){ if(arr[i] >= index){ num++; } }; if(num === index){ return index; }; index++; }; return -1; }; console.log(findSpecialArray(arr));
Đầu ra
Điều này sẽ tạo ra kết quả sau -
3