thảo luận Leetcode mỗi ngày

  • Người tạo chủ đề Người tạo chủ đề _Gia_Cat_Luong_
  • Ngày bắt đầu Ngày bắt đầu
Trạng thái
Không mở để trả lời thêm.
toy edit ròi đấy, thím brinbt đưa bài hard dạng recover array tương tự. Thay vì double mỗi value trong array ban đầu như bài hôm nay thì bài hard này nó thêm a[.i]-k và a[.i]+k với k nguyên dương bất kì
ghXpJrI.png
 
cái num max là 2000 phần tử, nên chỉ cần array<bool, 2001> là đủ, khỏi phải cấp phát động sau mỗi lần tìm k. Rồi dùng binary search thôi, do cái nums t đã sort rồi. :p
lỡ 1 phần tử nó lập nhiều lần thì xao nên toy mới xài cái map
OANgL56.png

optimize code lại bỏ bớt mấy chỗ cấp phát động ko cần thiết cũng xuống được ~90ms ròi
JEWoIdl.png
 
lỡ 1 phần tử nó lập nhiều lần thì xao nên toy mới xài cái map
OANgL56.png

optimize code lại bỏ bớt mấy chỗ cấp phát động ko cần thiết cũng xuống được ~90ms ròi
JEWoIdl.png
vậy mới cần xử lý khéo léo. Vd lần đầu search ra num[i ] + 2*k tại x. thì lần tiếp theo sẽ chỉ search num[i+1]+2*k trong khoảng [x+1,nums.end()) thôi, :p
 
Bài hôm nay hợp gu ghê :LOL:
Gọi n là số phần tử của nums, m là số phần tử của multipliers
Quy hoạch động, độ phức tạp là O(m*m) = O(10^6)
Gọi F(i, j) là giá trị lớn nhất có thể đạt được sau khi thực hiện i operation, và ta đã duyệt qua j phần tử đầu tiên của nums (và i-j phần tử cuối cùng của nums)
Gọi số phần tử ở dưới cuối của mảng nums mà ta đã duyệt qua là nR = i - j
F(i, j) = max (
F(i-1, j-1) + multipliers[i-1] * nums[j-1], // lấy phần tử bên trái
F(i-1, j) + multipliers[i-1] * nums[n-nR], // lấy phần tử bên phải
)
Kết quả trả về là max ( F(m, i) ) với i chạy từ 0 đến m
 
Sửa lần cuối:
qhd mà medium gì ko biết
Qz8dGvJ.png


đệ quy memoize TLE nghỉ chơi
LTT2cUR.png
LTT2cUR.png
LTT2cUR.png
https://leetcode.com/submissions/detail/800916001/
đổi cái cache từ unordered_map thành mảng 2 chiều thì ok
JiZo9zf.png
https://leetcode.com/submissions/detail/800918725/
Bài này làm O(m*m) làm python dùng @cache là dính TLE liền, đổi qua C++ dùng mảng 2 chiều thay cho cái @cache thì mới pass. Trên python chắc phải đổi qua dùng mảng 2 chiều trong numpy mới pass đc, :D
 
Trạng thái
Không mở để trả lời thêm.

Thống kê chủ đề

Ngày tạo
_Gia_Cat_Luong_,
Người trả lời cuối
Vipluckystar,
Trả lời
17.755
Lượt xem
1.212.736
Quay lại
Lên đầu trang