Cho một mảng các ký tự đã sắp xếp letters chỉ chứa chữ thường. Và một ký tự target target.
Cần viết hàm JavaScript nhận mảng làm đối số đầu tiên và ký tự làm đối số thứ hai. Hàm tìm phần tử nhỏ nhất trong danh sách lớn hơn target cho trước.
Lưu ý: các chữ cái xoay vòng. Ví dụ: target = 'z', letters = ['a', 'b'], kết quả là 'a'.
Ví dụ:
Nếu mảng và ký tự đầu vào là:
const arr = ["c", "f", "j"]; const target = "a";
Kết quả đầu ra nên là:
const output: "c";
Ví dụ
Mã thực hiện:
const arr = ["c", "f", "j"]; const target = "a"; const findNearestLetter = (arr = [], target = '') => { let left = 0; let right = arr.length - 1; while (left <= right) { let mid = left + (right - left) / 2; if (arr[mid] <= target) { left ++; } else { right --; }; }; if (left == arr.length) { return arr[0]; }; return arr[left]; }; console.log(findNearestLetter(arr, target));
Kết quả
Kết quả in ra console:
c