在C++中,求解给定数字组合中的重复数字可以使用哈希表或者位运算的方式。
示例代码:
#include <iostream>
#include <unordered_map>
#include <vector>
std::vector<int> findDuplicates(const std::vector<int>& nums) {
std::unordered_map<int, int> count;
std::vector<int> duplicates;
for (int num : nums) {
count[num]++;
if (count[num] > 1) {
duplicates.push_back(num);
}
}
return duplicates;
}
int main() {
std::vector<int> nums = {1, 2, 3, 3, 4, 5, 5, 6};
std::vector<int> duplicates = findDuplicates(nums);
std::cout << "Duplicates: ";
for (int duplicate : duplicates) {
std::cout << duplicate << " ";
}
std::cout << std::endl;
return 0;
}
输出结果:
Duplicates: 3 5
示例代码:
#include <iostream>
#include <vector>
std::vector<int> findDuplicates(const std::vector<int>& nums) {
int n = nums.size();
std::vector<int> bitvector(n, 0);
std::vector<int> duplicates;
for (int num : nums) {
if (bitvector[num - 1] == 0) {
bitvector[num - 1] = 1;
} else {
duplicates.push_back(num);
}
}
return duplicates;
}
int main() {
std::vector<int> nums = {1, 2, 3, 3, 4, 5, 5, 6};
std::vector<int> duplicates = findDuplicates(nums);
std::cout << "Duplicates: ";
for (int duplicate : duplicates) {
std::cout << duplicate << " ";
}
std::cout << std::endl;
return 0;
}
输出结果:
Duplicates: 3 5
以上是一种求解给定数字组合中重复数字的算法。请注意,我们不提供腾讯云相关产品的链接,但你可以自行搜索并了解腾讯云在云计算领域的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云