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

c++

(Programer) #1

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 ;
}

(Red Sand) #2

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


(Programer) #3

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


(rogp10) #4

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


(Duc Khai Tong) #5

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


(Programer) #6

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ỉ ??


(Việt Anh) #7

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é


(Duc Khai Tong) #8

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


(Duc Khai Tong) #9

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


(Red Sand) #10

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


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