Tìm số xuất hiện một lần trong mảng

Bài này em dùng map và chạy thì đáp án có một số trường hợp đag còn bị sai (đáp án bị ẩn nên ko xem đc ) ah chị xem qua code của em xem sai chỗ nào không ạ :((

#include<iostream>
#include<map>
using namespace std ;
int main()
{
    int n ;
    int a[1000] ;
    map <int , int> m ;
    map <int , int> :: iterator it ;
    cin >> n ;
    for(int i = 0 ; i < n ; i++)
    {
        cin >> a[i] ;
    }
    for(int i = 0 ; i < n ; i++)
    {
        m[a[i]]++ ;
    }
    for(it = m.begin() ; it != m.end() ; it++)
    {
        if(it -> second == 1 )
        {
            cout << it -> first ;
        }
    }
    return 0 ;
}

code nay khong sai
De bai co yeu cau input cu the nhu nao ko?

3 Likes

Mình Làm trên codepower nó tự nhập inpput cho chương trình luôn đó bn ^^

Do viết dính chùm đây mà.

3 Likes

bài tập phần nào thế bạn. mình cũng uet

1 Like

bài số cô đơn 1 đó ông làm mãi mà vẫn chỉ đúng được có một câu duy nhất :((
ông cl bn ấy nhỉ ??

Mình cũng là sinh viên UET đây, mình đã hoàn thành hết bài trên UETCodeHub rồi
Bài số cô đơn phải sử dụng toán tử bit thì mới chạy đúng yêu cầu, cách của bạn có lẽ là bị TLE (Time Limit Exceeded) chứ không phải sai.
Cụ thể ở đây hãy sử dụng phép xor và duyệt đúng 1 lần cả mảng ( O(n) ) cho nhanh thôi nhé

1 Like

tôi CN2, ông lớp nào thế. mà phần này trong phần phép toán bit, ông dùng bit đi.
Bài đấy nó giới hạn N tận 100000 ông khai báo có 1000

bài số cô đơn 2 bạn làm như thế nào thế, mình k nghĩ ra cách dùng toán tử bit nên làm cách khác rồi

Là bài này cả dãy chỉ có 1 số cô đơn ý hả? Thế thì dùng XOR là được rồi.
Mà dùng hash table cũng O(n) nhé. std::unodered_map

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?