LeetCode Two Pointers Problem: Trapping Rain Water
Classic two-pointer problem on LeetCode
Initial Approach
To accumulate water, each bar must have taller bars on both sides. Additionally, the water level above a bar is determined by the shorter of the two boundary bars — that is, the minimum of the left and right max heights minus the current bar's height.
The key challenge lies in identifying ...
Đăng vào ngày 4 tháng 7 lúc 23:41
Tìm hai số xuất hiện duy nhất trong mảng
Mô tả bài toán:
Cho một mảng số nguyên nums có đúng hai phần tử chỉ xuất hiện một lần, tất cả các phần tử còn lại đều xuất hiện đúng hai lần. Hãy tìm hai phần tử đó. Bạn có thể trả về kết quả theo bất kỳ thứ tự nào.
Bạn phải thiết kế một thuật toán với độ phức tạp thời gian tuyến tính và chỉ sử dụng bộ nhớ phụ hằng số.
Ví dụ 1:
<strong> ...
Đăng vào ngày 23 tháng 6 lúc 07:02
Giải pháp chi tiết LeetCode Weekly Contest 399
Bài 1: Tổng số cặp số tốt I
Đối với bài toán này, chúng ta cần đếm số lượng cặp chỉ số (i, j) sao cho nums1[i] chia hết cho nums2[j] * k. Do giới hạn kích thước của mảng là nhỏ (n, m <= 50), chúng ta có thể sử dụng phương pháp mô phỏng trực tiếp (brute-force) bằng cách duyệt qua tất cả các cặp có thể.
class Solution {
public:
int numberO ...
Đăng vào ngày 18 tháng 6 lúc 18:25
Các Bài Tập LeetCode: Phân Tách Chuỗi Hồi Văn, Chèn Vị Trí, Tìm Kiếm Ma Trận
Phân Tách Chuỗi Hồi Văn
Sử dụng hai hàm: một để kiểm tra chuỗi có phải là hồi văn hay không, và một để thực hiện thuật toán quay lui.
class Solution:
def kiemTraHoiVan(self, chuoi):
return chuoi == chuoi[::-1]
def quyLui(self, chuoi, viTriBatDau, duongDiHienTai, ketQua):
if viTriBatDau >= len(chuoi):
ketQua ...
Đăng vào ngày 18 tháng 6 lúc 06:25
Phân phối Kẹo, Tách Từ II, Điểm Tối Đa Trên Một Đường Thẳng
Bài viết này trình bày các giải pháp cho ba bài toán LeetCode: 135. Phân phối Kẹo, 140. Tách Từ II và 149. Điểm Tối Đa Trên Một Đường Thẳng.
135. Phân phối Kẹo
Bài toán yêu cầu phân phối kẹo cho các trẻ em dựa trên xếp hạng của họ sao cho mỗi trẻ em nhận được ít nhất một viên kẹo và trẻ em có xếp hạng cao hơn phải nhận được nhiều kẹo hơn trẻ e ...
Đăng vào ngày 13 tháng 6 lúc 05:09
Giải thuật xử lý danh sách liên kết: Đảo ngược, hợp nhất và phát hiện chu trình
Đảo ngược danh sách liên kết
Một cách hiệu quả để đảo ngược danh sách liên kết là sử dụng kỹ thuật chèn đầu. Ta duyệt qua từng nút trong danh sách gốc, tách từng nút ra và chèn vào đầu danh sách mới. Trong quá trình này, cần lưu trữ con trỏ đến nút kế tiếp trước khi thay đổi liên kết.
struct ListNode* reverseList(struct ListNode* head) {
s ...
Đăng vào ngày 12 tháng 6 lúc 20:14
Xác Suất Tồn Tại Của Mã Tế Sau K Bước Di Chuyển Trên Bàn Cờ
Bài toán: 688. Xác suất tồn tại của mã tế trên bàn cờ
Cách tiếp cận: Có tối đa k * n * n trạng thái, đáp ứng yêu cầu về thời gian.
Phương pháp 1: Đệ quy + Tìm kiếm theo chiều sâu (DFS). Độ phức tạp thời gian là O(k * n²), chi tiết xem trong chú thích.
Phiên bản C++:
class Solution {
public:
// tám hướng di chuyển
int huongDiChuyenX[8]={ ...
Đăng vào ngày 5 tháng 6 lúc 23:10
Các bài toán xử lý danh sách liên kết trên LeetCode
21. Gộp hai danh sách liên kết đã sắp xếp
Cho hai danh sách liên kết tăng dần, hãy gộp chúng thành một danh sách mới cũng theo thứ tự tăng dần.
ListNode* merge(ListNode* a, ListNode* b) {
if (!a) return b;
if (!b) return a;
if (a->val < b->val) {
a->next = merge(a->next, b);
return a;
} else {
...
Đăng vào ngày 2 tháng 6 lúc 21:43
Giải bài LeetCode 1934: Tính tỷ lệ xác nhận người dùng
Cho hai bảng dữ liệu như sau:
Bảng: Signups
+----------------+----------+
| Tên cột | Kiểu |
+----------------+----------+
| user_id | int |
| time_stamp | datetime |
+----------------+----------+
user_id là khóa chính. Mỗi hàng ghi lại thời điểm đăng ký của một người dùng.
Bảng: Confirmations
+----------------+ ...
Đăng vào ngày 2 tháng 6 lúc 02:44
Kiểm tra số đối xứng bằng toán học không dùng chuỗi
Đề bài
Cho một số nguyên x, hãy xác định xem nó có phải là số đối xứng hay không. Một số được gọi là đối xứng nếu đọc từ trái sang phải hay từ phải sang trái đều cho cùng một giá trị. Ví dụ: 121 là số đối xứng, trong khi 123 thì không.
Ví dụ minh họa
Ví dụ 1:
Đầu vào: x = 121
Đầu ra: true
Ví dụ 2:
Đầu vào: x = -121
Đầu ...
Đăng vào ngày 30 tháng 5 lúc 00:48