
[STLC++Set] secondOrder
Bài tập.
Anh Việt đang thông kê số liệu cho công ty, anh muốn giá trị nhỏ thứ hai ở trong một dãy số nguyên.
Hãy giúp anh Việt tìm ra giá trị đó, nếu không có kết quả như yêu cầu thì trả về "NO"
.
Ví dụ:
-
Với
arr = [1, 2, 3, 1, 1]
thì kết quả sẽ làsecondOrder(arr) = "2"
. -
Với
arr = [-4, 1, 2, 2]
thì kết quả sẽ làsecondOrder(arr) = "1"
.
Hướng dẫn.
Lưu dãy và một set, sau đó kiểm tra, nếu số lượng phần tử trong set đó nhỏ hơn 2
thì in ra "NO"
, ngược lại in số thứ 2
ra.
Code mẫu:
std::string secondOrder(std::vector<int> arr)
{
std::set<int> s(arr.begin(), arr.end());
std::set<int>::iterator it = s.begin();
std::advance(it, 1);
if(s.size() > 1)
return std::to_string(*it);
else
return "NO";
}
Post Comment