Idea của mình là check 4 cái, dùng for() quét hết mảng:
1. dùng 1 cờ lưu lại check xem có số 1 trong mảng không;
2. dùng 1 biến để tìm và lưu lại phần tử lớn nhất trong mảng ==> max
3. tìm số nhỏ nhất nằm giữa 2 phần tử cạnh nhau trong mỗi 3 phần tử liên tiếp:
Ví dụ ở step 3: cho mảng {1, 4, 8, 9}:
- so sánh [1,4] => 2 và [4,8] => 5
===> 2 < 5, giữ 2 lại,
- tìm số nhỏ nhất không có mặt của [8,9]==> 7
==> 2 < 7, giữ 2 lại
và cứ vậy
4. Sau khi rởi khỏi For()
4.1 check step1, nếu không có 1 trong mảng thì return 1;
else
4.2 so sánh output ở step3 với giá trị (max+1) ở step2. rồi return cái nào nhỏ hơn.
p/s: step 3 có vẻ không ổn lắm