2023 去哪儿笔试题 0915
笔试时间:2023年9月15日 秋招
第一题
题目
有一个长度为的正整数序列,小驼想移除掉里面的重复元素,但是小驼想是对于每种元素保留最后出现的那个。
输入描述
输入包括两行:
第一行为序列长度n(1≤n≤50)
第二行为n个数sequence[i] (1≤sequence[i]≤500),以空格分隔。
输出描述
输出消除重复元素之后的序列,以空格分隔,行未无空格
样例输入
8,[10,20,20,99,20,99,100,100]
样例输出
[10,20,99,100]
参考题解
倒序遍历查找,并用set去重。
C++:[此代码未进行大量数据的测试,仅供参考]
#include <iostream>
#include <vector>
#include <unordered_set>
std::vector<int> findQ(int n, std::vector<int> nums) {
std::vector<int> result;
std::unordered_set<int> set;
for (int i = n - 1; i >= 0; i--) {
if (set.find(nums[i]) == set.end()) {
result.push_back(nums[i]);
set.insert(nums[i]);
}
}
// Reverse the result vector
std::reverse(result.begin(), result.end());
return result;
}
Java:[此代码未进行大量数据的测试,仅供参考]
public static int[] findQ (int n, int[] nums) {
// write code here
List<Integer> list = new ArrayList<Integer>();
Set<Integer> set = new HashSet<Integer>();
for(int i = n-1;i>=0;i--){
if(!set.contains(nums[i])){
list.add(nums[i]);
set.add(nums[i]);
}
}
int[] result = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
result[list.size()-i-1] = list.get(i);
}
return result;
}
Python:[此代码未进行大量数据的测试,仅供参考]
def findQ(n, nums):
result = []
unique_set = set()
for i in range(n - 1, -1, -1):
if nums[i] not
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023 秋招笔试题汇总解析 文章被收录于专栏
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。

汤臣倍健公司氛围 396人发布