Số tăng dần
Một dãy số mà mỗi phần tử tiếp theo lớn hơn hoặc bằng phần tử trước gọi là dãy tăng dần.
Ví dụ:
4, 6, 8, 9, 11, 14 là dãy tăng dần 3, 3, 3, 3, 3, 3, 3 cũng là dãy tăng dần
Mô tả vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào mảng số arr làm đối số duy nhất. Hàm kiểm tra xem có tồn tại ba phần tử liên tiếp trong mảng là tăng dần hay không.
Ví dụ, nếu đầu vào là:
const arr = [4, 1, 5, 7, 3, 1, 4];
Thì đầu ra nên là:
const output = true;
Giải thích đầu ra
Vì tồn tại 1, 5, 7 liên tiếp trong mảng.
Ví dụ minh họa
Mã thực hiện (O(n) time, O(1) space):
const arr = [4, 1, 5, 7, 3, 1, 4];
const increasingTriplet = function(arr) {
let first = Infinity;
let second = Infinity;
for (let curr of arr) {
if (curr > second && curr > first) {
return true;
};
if (curr > first) {
second = curr;
} else {
first = curr;
};
};
return false;
};
console.log(increasingTriplet(arr));Giải thích mã
Điều kiện kiểm tra mỗi vòng lặp: Trả về true nếu tồn tại i, j, k sao cho arr[i] < arr[j] < arr[k] với 0 ≤ i < j < k ≤ n-1, ngược lại trả về false.
Đầu ra
Kết quả trong console sẽ là:
true