Mô tả bài toán
Cho mảng, mọi giá trị xuất hiện a lần trừ một giá trị xuất hiện b lần. Tìm giá trị đó.
Ví dụ
arr={3,3,3,3,5,5,5,1,1,1,1}, a=4, b=3 → Output: 5.
Giải thuật (Toán học O(N))
Gọi Sunique = tổng các giá trị duy nhất. Tổng mảng = a×Sunique - (a-b)×x, với x là giá trị xuất hiện b lần. Suy ra x = (a×Sunique - Sarr) / (a-b).
Mã nguồn C++
#include <bits/stdc++.h>
using namespace std;
int findbFreqVal(int arr[], int n, int a, int b) {
unordered_set<int> uniq;
long long uniqSum=0, arrSum=0;
for (int i=0; i
Đầu ra
The value of the array that appears b times is 31