Chỉnh sửa nâng cấp chương trình của nhiệm vụ thực hành để đưa ra kết quả là vùng các phần tử có giá trị bằng C của dãy gốc, tức là yêu cầu đưa ra chỉ số đầu, chỉ số cuối và số lượng phần tử của vùng có giá trị bằng C.
Ví dụ nếu A = [0, 1, 2, 2, 2, 2, 4, 5, 5, 6], C = 2, thì kết quả trả lại là 2, 5, 4.
Chỉnh sửa nâng cấp chương trình của nhiệm vụ thực hành để đưa ra kết quả là vùng các phần tử có giá trị bằng C của dãy gốc, tức là yêu cầu đưa ra chỉ số đầu, chỉ số cuối và số lượng phần tử của vùng có giá trị bằng C.
Ví dụ nếu A = [0, 1, 2, 2, 2, 2, 4, 5, 5, 6], C = 2, thì kết quả trả lại là 2, 5, 4.
Quảng cáo
Trả lời:
- Chương trình trả về ba giá trị start, end và count, tương ứng với chỉ số đầu tiên, chỉ số cuối cùng và số lượng phần tử của vùng có giá trị bằng C trong dãy A.
- Trong trường hợp không tìm thấy C trong dãy A, chương trình trả về -1, -1, 0.
- Nếu giá trị tại vị trí mid bằng C, ta sử dụng hai biến start và end để tìm ra chỉ số đầu tiên và cuối cùng của vùng có giá trị bằng C. Sau đó, ta trả về giá trị start + 1, end - 1 và end - start - 1.
- Nếu giá trị tại vị trí mid nhỏ hơn C, ta tiếp tục tìm kiếm phần tử có giá trị bằng C ở nửa bên phải của dãy A.
- Nếu giá trị tại vị trí mid lớn hơn C, ta tiếp tục tìm kiếm phần tử có giá trị bằng C ở nửa bên trái của dãy A.

Ví dụ chạy thử chương trình:

Thu được kết quả:

Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Đang tải chế độ Học...
Hot: 1000+ đề thi giữa kì 1 lớp 1-12 đầy đủ các môn (Update 2026) (chỉ từ 60k). Tải ngay
Đăng ký VIP để học và luyện thi không giới hạn
Trọn bộ quyền lợi trên Vietjack, trong một tài khoản.
- Phòng luyện thi cấp tốc: ĐGNL - ĐGTD, Tốt nghiệp THPT, Ôn vào 10, Ôn vào 6, Ôn Giữa kì/Cuối kì
- Hơn 200K đề thi thử, đề minh hoạ, chính thức các năm
- Với 3tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
- Tải xuống đề thi [DOCX] với đầy đủ đáp án
- Xem hàng ngàn bài giảng đính kèm củng cố thêm kiến thức
- Bao gồm tất cả các bậc từ Tiểu học đến Đại học
- Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện
- Đăng ký ngay
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Để tìm số lần xuất hiện của K trong một dãy số chưa được sắp xếp bằng phương pháp chia để trị, ta có thể sử dụng đệ quy và chia dãy số ban đầu thành hai phần. Tiếp tục chia đến khi dãy số chỉ còn một phần tử hoặc không có phần tử nào

Với đầu vào là một dãy số A và một số K, hàm countNum sẽ trả về số lần xuất hiện của K trong dãy số A. Ví dụ

Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Để tìm vị trí thứ i trong dãy số sao cho phần tử thứ i có giá trị bằng i, ta có thể sử dụng phương pháp chia để trị như sau:
1. Tìm giá trị trung bình của left và right: mid = (left + right) // 2
2. Nếu giá trị tại vị trí mid bằng mid, tức là A[mid] == mid, thì trả về mid
3. Nếu giá trị tại vị trí mid lớn hơn mid, tức là A[mid] > mid, thì tiếp tục tìm vị trí thích hợp trong đoạn từ left đến mid-1
4. Nếu giá trị tại vị trí mid nhỏ hơn mid, tức là A[mid] < mid, thì tiếp tục tìm vị trí thích hợp trong đoạn từ mid+1 đến right
5. Nếu không tìm được vị trí thích hợp nào, tức là left > right, thì trả về -1

Ví dụ

Kết quả sẽ là "Vị trí thích hợp là: 3", tức là phần tử thứ 3 trong dãy A có giá trị bằng 3.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng ký để học cùng Vietjack. Hoàn toàn miễn phí!
Bằng việc đăng ký, bạn đồng ý với Điều khoản sử dụng và Chính sách bảo mật của Vietjack.
