32.4. Cho trước dãy số. Yêu cầu cần tìm ra một dãy con liên tục có độ dài lớn nhất bao gồm các số...

Câu hỏi:

32.4. Cho trước dãy số. Yêu cầu cần tìm ra một dãy con liên tục có độ dài lớn nhất bao gồm các số bằng nhau. Ví dụ với dãy: 1, 1, 2, 3, 0, 0, 0, 7, 10, 10, 5, 1, 1, 6 thì cần đưa ra thông báo:

  • Dãy con bằng nhau có độ dài lớn nhất là 0, 0, 0 bắt đầu từ chỉ số 4.
  • Dãy số gốc gồm các số nguyên được nhập trên một dòng từ bàn phím, chương trình cần đưa ra thông báo như trên.
Câu trả lời:
Người trả lời: GV. Đỗ Thị Đạt
Cách làm:

- Khởi tạo một biến A là dãy số đầu vào.
- Khởi tạo biến Indx là chỉ số bắt đầu của dãy con bằng nhau có độ dài lớn nhất, ban đầu là 0.
- Khởi tạo biến lenMax là độ dài của dãy con bằng nhau có độ dài lớn nhất, ban đầu là 1.
- Duyệt qua các phần tử của dãy A.
- Với mỗi phần tử A[i], duyệt từ vị trí i đến hết dãy A. Nếu phần tử đó bằng A[i], tiếp tục tăng biến j cho tới khi không còn phần tử nào bằng A[i].
- Nếu độ dài của dãy con tìm được lớn hơn lenMax, cập nhật lại lenMax và chỉ số bắt đầu Indx.
- In ra chỉ số bắt đầu và độ dài của dãy con bằng nhau có độ dài lớn nhất, sau đó in ra dãy con đó.

Câu trả lời:
Đầu vào là dãy số: 1, 1, 2, 3, 0, 0, 0, 7, 10, 10, 5, 1, 1, 6.
Dãy con bằng nhau lớn nhất bắt đầu từ chỉ số: 4 độ dài 3
[0, 0, 0]
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.09770 sec| 2166.727 kb