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

全部评论
香港大学!厉害👍
点赞 回复 分享
发布于 2023-09-26 13:11 河南

相关推荐

代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
评论
4
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务