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多种语言分析,解答。