酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

描述 输入n个数,然后查询第一次出现它的下标以及它出现的次数。若该数不在数组内,则输出最后一个整数的后一位。 输入描述 三行,第一行:两个整数n和q。表示整数的个数以及查询的个数; 第二行:有n个整数,表示原数组; 第三行:有q个整数,表示要查找的目标整数。 输出描述 有q行整数,每一行有两个整数,分别代表该数的位置以及出现的次数。c++

以下是使用 C++ 解决此问题的代码示例: ```cpp #include <iostream> #include <unordered_map> int main() { int n, q; std::cin >> n >> q; int arr[n]; for (int i = 0; i < n; ++i) { std::cin >> arr[i]; } std::unordered_map<int, int> countMap; // 用于记录数字出现的次数 std::unordered_map<int, int> indexMap; // 用于记录数字首次出现的下标 for (int i = 0; i < n; ++i) { if (countMap.find(arr[i]) == countMap.end()) { indexMap[arr[i]] = i; // 记录首次出现的下标 } countMap[arr[i]]++; // 增加出现次数 } while (q--) { int target; std::cin >> target; if (countMap.find(target)!= countMap.end()) { std::cout << indexMap[target] << " " << countMap[target] << std::endl; } else { std::cout << n + 1 << " 0" << std::endl; } } return 0; } ``` 额外需要注意的逻辑点: 1. 对于输入的数字范围要进行合理的处理,防止溢出。 2. 在使用`unordered_map`时,要注意键值对的正确插入和查找。 3. 处理输入输出时,要确保格式的正确性。 [2025-04-11 21:52:46 | AI写代码神器 | 372点数解答]

相关提问