笔试时间: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
点赞 4
评论 1
全部评论

相关推荐

07-18 18:05
门头沟学院 Java
挂了 正式批求捞
投递滴滴等公司10个岗位
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
弦五Strings:他之所以会举报你代课是因为在这种人眼里正常上课就是正义代课就是邪恶,典型二极管思维,处理方法就是私下沟通,你就说你自己家里经济困难或者家里父母生病什么之类的,需要去打工挣钱,用尽孝的正义对冲他认为的上课的正义,他可能就妥协了。
我的实习日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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