Cho một mảng số nguyên arr gồm n phần tử. Tìm và in ra tất cả các phần tử arr[i] sao cho arr[i] > arr[i – 1](nếu có) và arr[i] > arr[i + 1](nếu có).
Cho ví dụ
Input: arr[] = {1, 3, 2, 6, 5, 9}, n = 6
Output: 3, 6. 9
Bài này có vẽ simple, mình sẽ dùm linear search để duyệt từng phần tử và kiếm tra xem nó có lớn hơn hàng xóm của nó hay không =).
public static void main(String[] args) { int[] arr = {1, 3, 2, 6, 5, 9}; int n = arr.length; for (int i = 0; i < n; i++) { if (((i - 1 >= 0 && arr[i] >= arr[i - 1]) && (i + 1 <= n - 1 && arr[i] >= arr[i+ 1])) || (i - 1 < 0 && arr[i] >= arr[i + 1]) || (i + 1 > n - 1 && arr[i] > arr[i - 1])) { System.out.println(arr[i]); } } }
Độ phức tạp: O(n)