Một mảng được gọi là mảng đặc biệt nếu tồn tại số nguyên dương num, sao cho có đúng num phần tử lớn hơn num trong mảng. Số num không nhất thiết phải thuộc mảng, chỉ cần tồn tại.
Ví dụ - Nếu mảng đầu vào:
const arr = [2, 1, 5, 2, 7, 9];
Khi kiểm tra kỹ, ta thấy với num = 3, có đúng 3 phần tử lớn hơn 3 trong mảng này. Tuy 3 không nằm trong mảng, nhưng vẫn hợp lệ. Cần viết hàm nhận mảng số. Hàm trả về số mà mảng đặc biệt quanh nó (nếu là đặc biệt), ngược lạ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= index){
num++;
}
};
if(num === index){ return index; };
index++;
};
return -1;
};
console.log(findSpecialArray(arr));
Kết quả
Điều này sẽ tạo ra đầu ra sau:
3