Dãy con trăn tối đa
Dãy con chung dài nhất (LCS) được định nghĩa là dãy con dài nhất chung cho tất cả các dãy đã cho, với điều kiện là các phần tử của dãy con không bắt buộc phải chiếm các vị trí liên tiếp trong các dãy ban đầu Nếu S1 và S2 là hai dãy đã cho thì Z là dãy con chung của S1 và S2 nếu Z là dãy con của cả S1 và S2. Hơn nữa, Z phải là một dãy tăng nghiêm ngặt của các chỉ số của cả S1 và S2 Trong một dãy nghiêm ngặt tăng dần, chỉ số của các phần tử được chọn từ dãy ban đầu phải theo thứ tự tăng dần trong Z Nếu S1 = {B, C, D, A, A, C, D} Khi đó, Hãy để chúng tôi hiểu LCS với một ví dụ Nếu S1 = {B, C, D, A, A, C, D} S2 = {A, C, D, B, A, C} Khi đó, các dãy con chung là Trong số các dãy con này, S1 = {B, C, D, A, A, C, D} S2 = {A, C, D, B, A, C}0 là dãy con chung dài nhất. Chúng ta sẽ tìm dãy con chung dài nhất này bằng quy hoạch động Trước khi tiếp tục, nếu bạn chưa biết về lập trình động, vui lòng xem qua lập trình động Sử dụng Lập trình động để tìm LCSHãy để chúng tôi lấy hai trình tự Dãy thứ nhấtDãy thứ haiCác bước sau đây được thực hiện để tìm dãy con chung dài nhất
Do đó, dãy con chung dài nhất là CA LCSLàm thế nào là một thuật toán lập trình động hiệu quả hơn thuật toán đệ quy trong khi giải quyết vấn đề LCS? Phương pháp lập trình động giảm số lần gọi hàm. Nó lưu trữ kết quả của mỗi lần gọi hàm để có thể sử dụng nó trong các lần gọi sau mà không cần gọi dự phòng Trong thuật toán động ở trên, kết quả thu được từ mỗi lần so sánh giữa các phần tử của X và các phần tử của Y được lưu trữ trong một bảng để chúng có thể được sử dụng trong các tính toán sau này Vì vậy, thời gian thực hiện theo phương pháp động là thời gian thực hiện để lấp đầy bảng (tức là. Ô(mn)). Trong khi đó, thuật toán đệ quy có độ phức tạp là 2max(m, n) Viết chương trình Python tìm tổng lớn nhất của một dãy con liền kề từ một dãy số cho trước a1, a2, a3,. một. Dãy con có một phần tử cũng là dãy con liên tục Đầu vào. Giải pháp mẫu Mã Python
Đầu ra mẫu Input number of sequence of numbers you want to input (0 to exit): 3 Input numbers: 2 4 6 Maximum sum of the said contiguous subsequence: 12 Input number of sequence of numbers you want to input (0 to exit): 0 Sơ đồ Trình chỉnh sửa mã Python Có một cách khác để giải quyết giải pháp này? Trước. Viết chương trình Python kiểm tra xem hai đường thẳng PQ và RS có song song không. Bốn điểm đó là P(x1, y1), Q(x2, y2), R(x3, y3), S(x4, y4). Mức độ khó của bài tập này là gì? Dễ dàng trung bình khóKiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource Theo dõi chúng tôi trên Facebook và Twitter để cập nhật thông tin mới nhất. con trăn. Lời khuyên trong ngàyliệt kê Khi bạn cần thêm bộ đếm vào một lần lặp, liệt kê thường là cách tiếp cận tao nhã nhất. Nó sẽ trả về khả năng lặp lại (giả sử danh sách, bộ dữ liệu, phạm vi, chuỗi hoặc từ điển, v.v. ) với bộ đếm và đối tượng trả về sẽ là một liệt kê |