Trong bài viết này, chúng ta phải tìm số lượng phân đoạn hoặc mảng con trong một trình tự nhất định trong đó các phần tử lớn hơn số X đã cho.
Chúng tôi chỉ có thể đếm các phân đoạn chồng chéo một lần và hai phần tử hoặc phân đoạn liền kề không được tính riêng rẽ. Vì vậy, đây là ví dụ cơ bản của vấn đề đã cho -
Input : arr[ ] = { 9, 6, 7, 11, 5, 7, 8, 10, 3}, X = 7 Output : 3 Explanation : { 9 }, { 11 } and { 8, 10 } are the segments greater than 7 Input : arr[ ] = { 9, 6, 12, 2, 11, 14, 8, 14 }, X = 8 Output : 4 Explanation : { 9 }, { 12 }, { 11, 14 } and { 14 } are the segments greater than 8
Phương pháp tiếp cận để tìm giải pháp
Phương pháp tiếp cận ngây thơ
Trong sự cố này, chúng tôi đang khởi tạo một trạng thái biến với 0 và bắt đầu xử lý mảng đã cho và thay đổi trạng thái thành 1 khi tìm thấy phần tử lớn hơn X và tiếp tục xử lý các phần tử và thay đổi trạng thái trở về 0 khi tìm thấy số nhỏ hơn hoặc bằng X và số gia tăng bằng 1 cho mỗi lần trạng thái chuyển về 1 và quay lại 0.
Ví dụ
#include <bits/stdc++.h> using namespace std; int main (){ int a[] = { 9, 6, 12, 2, 11, 14, 8, 14 }; int n = sizeof (a) / sizeof (a[0]); int X = 8; int state = 0; int count = 0; // traverse the array for (int i = 0; i < n; i++){ // checking whether element is greater than X if (a[i] > X){ state = 1; } else{ // if flag is true if (state) count += 1; state = 0; } } // checking for the last segment if (state) count += 1; cout << "Number of segments where all elements are greater than X: " << count; return 0; }
Đầu ra
Number of segments where all elements are greater than X: 4
Giải thích về Chương trình trên
Trong chương trình trên, chúng tôi đang sử dụng trạng thái làm công tắc và chúng tôi đặt nó thành 1 khi tìm thấy một số lớn hơn X và đặt nó thành 0 khi tìm thấy một số nhỏ hơn hoặc bằng X, và cho mọi trạng thái chuyển về 1 và trở về 0, chúng tôi tăng số đếm lên 1. Cuối cùng, in kết quả được lưu trong số đếm.
Kết luận
Trong bài viết này, chúng tôi giải quyết vấn đề tìm số đoạn mà tất cả các phần tử đều lớn hơn X bằng cách áp dụng cách tiếp cận đặt trạng thái thành 1 và 0 bất cứ khi nào một đoạn được tìm thấy. Chúng tôi có thể viết chương trình này bằng bất kỳ ngôn ngữ lập trình nào khác như C, Java, Python, v.v.