cuốn sách gpt4 ai đã làm

334. Tăng dãy con bộ ba Tăng dãy con bộ ba

In lại Tác giả: Đường đến ông chủ Thời gian cập nhật: 2024-01-31 14:20:38 27 4
mua khóa gpt4 Nike

Địa chỉ câu hỏi: https://leetcode.com/problems/increasing-triplet-subsequence/description/

Mô tả chủ đề:

Cho một mảng chưa được sắp xếp trả về xem dãy con tăng dần có độ dài 3 có tồn tại hay không trong mảng.

Về mặt hình thức, hàm này nên:

Trả về true nếu tồn tại i, j, k sao cho arr[i] < arr[j] < arr[k] cho trước 0 ≤ i < j < k ≤ n-1 nếu không trả về false.

Thuật toán của bạn phải chạy ở độ phức tạp thời gian O(n) và độ phức tạp không gian O(1).

Ví dụ: Cho [1, 2, 3, 4, 5], trả về true. Cho [5, 4, 3, 2, 1], trả về false.

Ý tưởng chung của chủ đề

Xác định xem một mảng không có thứ tự có chứa chuỗi có độ dài tăng dần 3 hay không.

Phương pháp giải quyết vấn đề

Nó chắc chắn có thể được thực hiện bằng giải pháp của LIS, nhưng nó không đáp ứng được độ phức tạp về thời gian O(n) được đưa ra trong câu hỏi. Sau khi đọc giải pháp của người khác, tôi thấy họ thực sự rất thông minh. Chúng ta hoàn toàn có thể bỏ DP và dfs. Khi viết code, tôi chỉ cần dùng con thoi, tôi chỉ cần lấy bàn phím và thực hiện!

Vì bắt buộc phải duyệt từ trước ra sau nên khi duyệt ta lưu giá trị nhỏ nhất và giá trị nhỏ thứ 2 đã thấy rồi tìm ra tồn tại giá trị nhỏ thứ 3 lớn hơn 2 giá trị này nghĩa là có độ dài là dãy con tăng dần bằng 3.

Tất nhiên, đối với trường hợp này:

4 5 1 2 6

Có hai loại dãy con tăng dần có độ dài 3, nhưng vì chúng ta lưu dãy con nhỏ nhất trước nên kết quả cuối cùng là nhóm 1 2 6.

Ý tưởng tổng thể thực sự rất linh hoạt, điều được tiết kiệm là thời gian truyền tảiđã xemNhỏ nhất và nhỏ thứ hai, vì vậy đừng bao giờ sử dụng các hàm tĩnh tối thiểu và tối đa.

Mã số:

Giải pháp lớp(đối tượng): def tăngTriplet(self, nums): """ :type nums: List[int] :rtype: bool """ first, two = float('inf'), float('inf') for num trong nums: if num <= first: first = num elif num <= two: two = num else: return Đúng trả về Sai

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

DDKK.COM Brother Kuaikan-hướng dẫn, trang thông tin lập trình dành cho lập trình viên, bản quyền thuộc về tác giả gốc

Bài viết này được viết bởi:nến tuyết tiêu cực Được ủy quyền xuất bản, không tổ chức, cá nhân nào được chuyển tiếp nếu không có sự cho phép của tác giả

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress