Code kiểm tra tần số xuất hiện của tất cả các số nguyên trong vector bằng nhau hay không bị sai

Em sai 1 test case trong 11 test case nhưng em không tìm ra lỗi. Mọi người tìm giúp em với ạ. Em cảm ơn nhiều :sunny: (em học trên codelearn nên không có thư viện hay hàm main gì ạ)

bool checkEqualFrequency(std::vector<int> inputArray)
{
    vector <int> s = inputArray;
    sort (s.begin(),s.end());
    int d[100];   
    int k=0;
    for (int i = 1; i < s.size();i++) { 
            d[k] = 1;
         while (s[i]==s[i-1]) { 
            i++; 
            d[k]++; 
         }
         k++; 
    }
    for (int i = 0; i < k-1;i++) { 
           if (d[i]!=d[i+1]) return false; 
    }
    return true; 

}

Bên code learn có dọn rác không nhỉ? Nếu có thì anh thử tạo 1 mảng rồi xuất ra xem giá trị mặc định trong mảng là gì. Giả sử là 0 thì case có 0 ở cuối ví dụ như 999000 sẽ sai.

5 Likes

Bài này sort xong bạn chỉ cần tìm độ dài dãy đầu tiên, sau đó nhảy tới bao nhiêu đó bước là xong.

6 Likes


image

Thanks nhiều mà nó vẫn bảo như nhau bạn à :sunny:

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