Tags:

Tìm và in ra tất cả các phần tử trong mảng lớn hơn hàng xóm của nó

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)

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x