Loading Now

[STLC++Set] secondOrder

STLC++_SET

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

Contact