HIEUVANG - Hiếu đầu tư vàng
Xem dạng PDFHiếu đầu tư vàng
Trong n ngày liên tiếp, Hiếu ghi lại giá vàng 9999 của từng ngày để tự đánh giá các quyết định đầu tư của mình.
Sau khi đã có toàn bộ bảng giá của n ngày đó, Hiếu muốn biết: nếu trong giai đoạn này anh ấy được thực hiện đúng một giao dịch thì lợi nhuận lớn nhất có thể đạt được là bao nhiêu.
Một giao dịch gồm:
- chọn một ngày để mua vàng
- chọn một ngày sau đó để bán vàng
Lợi nhuận thu được bằng:
~\text{giá bán} - \text{giá mua}~
Hãy tính lợi nhuận lớn nhất mà Hiếu có thể đạt được. Nếu không có cách nào để có lãi, hãy in ra 0.
Input
- Dòng đầu tiên chứa số nguyên ~n~ ~(1 \le n \le 2 \cdot 10^5)~.
- Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~ ~(1 \le a_i \le 10^9)~, trong đó ~a_i~ là giá vàng ở ngày thứ ~i~.
Output
In ra một số nguyên duy nhất là lợi nhuận lớn nhất có thể đạt được. Nếu mọi giao dịch đều không có lãi thì in 0.
Ví dụ
Input
6
7 1 5 3 6 4
Output
5
Giải thích
Mua ở ngày có giá ~1~ và bán ở ngày có giá ~6~, nên lợi nhuận lớn nhất là ~6 - 1 = 5~.
Bình luận
Mọi người check hộ em sao lại sai với ạ
include <bits/stdc++.h>
using namespace std;
int main() {
}
hay
hello mn =)
spoil!
code tham khảo (c++)
def init(self, capacity): self.capacity = capacity self.cache = {} # key -> node self.head = Node() # dummy head self.tail = Node() # dummy tail self.head.next = self.tail self.tail.prev = self.head
Độ phức tạp: O(1) cho cả get và put
Cách 2: Ordered Dict (Python) from collections import OrderedDict
class LRUCache: def init(self, capacity): self.capacity = capacity self.cache = OrderedDict()