要在C++和Java中分別實(shí)現(xiàn)一個(gè)函數(shù),該函數(shù)可以找出數(shù)組 [1, 1, 2, 2, 3, 3, 4, 5, 5] 中僅出現(xiàn)一次的元素,我們可以利用哈希表(C++中的unordered_map,Java中的HashMap)來(lái)記錄每個(gè)元素的出現(xiàn)次數(shù),然后遍歷數(shù)組找到只出現(xiàn)一次的元素。 c++#include <iostream> #include <vector> #include <unordered_map> int findSingleOccurrence(const std::vector<int>& nums) { std::unordered_map<int, int> countMap; // 統(tǒng)計(jì)每個(gè)元素的出現(xiàn)次數(shù) for (int num : nums) { countMap[num]++; } // 找出只出現(xiàn)一次的元素 for (int num : nums) { if (countMap[num] == 1) { return num; } } // 如果沒(méi)有只出現(xiàn)一次的元素,返回-1或拋出異常(根據(jù)需求) return -1; } int main() { std::vector<int> nums = {1, 1, 2, 2, 3, 3, 4, 5, 5}; int result = findSingleOccurrence(nums); std::cout << "The number that occurs only once is: " << result << std::endl; return 0; } javaimport java.util.HashMap; import java.util.Map; public class Main { public static int findSingleOccurrence(int[] nums) { Map<Integer, Integer> countMap = new HashMap<>(); // 統(tǒng)計(jì)每個(gè)元素的出現(xiàn)次數(shù) for (int num : nums) { countMap.put(num, countMap.getOrDefault(num, 0) + 1); } // 找出只出現(xiàn)一次的元素 for (int num : nums) { if (countMap.get(num) == 1) { return num; } } // 如果沒(méi)有只出現(xiàn)一次的元素,返回-1或拋出異常(根據(jù)需求) return -1; } public static void main(String[] args) { int[] nums = {1, 1, 2, 2, 3, 3, 4, 5, 5}; int result = findSingleOccurrence(nums); System.out.println("The number that occurs only once is: " + result); } } 解釋在C++中,我們使用unordered_map來(lái)存儲(chǔ)每個(gè)元素及其出現(xiàn)的次數(shù)。 在Java中,我們使用HashMap來(lái)存儲(chǔ)每個(gè)元素及其出現(xiàn)的次數(shù)。 |
|