Đây là Chương trình C ++ để tìm Diện tích hình chữ nhật lớn nhất trong Biểu đồ
Hàm thuật toán getArea ():
Begin Tạo một ngăn xếp trống. Khởi tạo vùng lớn nhất. Thực hiện một vòng lặp while bắt đầu từ thanh đầu tiên cho mỗi thanh hist [i], trong đó i =0 đến nhỏ hơn n:Nếu ngăn xếp trống hoặc hist [i] cao hơn thanh ở đầu ngăn xếp, thì hãy đẩy 'i' lên cây rơm. Nếu không, thanh này nhỏ hơn đỉnh của ngăn xếp, sau đó tiếp tục loại bỏ đỉnh của ngăn xếp trong khi trên cùng của ngăn xếp lớn hơn. Tính diện tích hình chữ nhật có thanh nhỏ nhất. Phần tử trước đầu trong ngăn xếp là chỉ mục bên trái và i là chỉ mục bên phải cho trên cùng. Bật các thanh còn lại từ ngăn xếp nếu ngăn xếp không trống và tính diện tích với mọi thanh được bật lên là thanh nhỏ nhất.Mã mẫu
#include#include using namespace std; int getArea (int hist [], int n) {stack st; int large_area =0; int đầu; int toparea; int i =0; while (i Đầu ra
Diện tích lớn nhất là 16