Shopee后端日常实习笔试 2024.5.13

题型

单选30分,十道
多选15分,五道,部分选对只有1分
编程55分,三道

选择题考点

计算机网络

拥塞控制、滑动窗口、三次握手、四次挥手、HTTPS协议

操作系统

进程管理、内存管理、Linux相关指令、锁机制、线程

面向对象

虚函数、继承、多态

数据结构

二叉树

C程序

递归

编程题

  1. 给定数组costs和整数coins,要求返回一个数组,数组元素和不大于coins,且数组元素为costs中的元素并按照costs的顺序给出。

通过率48%

class Solution {
public:
    /**
     * Note: 类名、方法名、参数名已经指定,请勿修改
     *
     * 
     * 根据价格列表和当前点券数,计算出能买到的最多英雄
     * @param costs int整型 vector 英雄点券价格列表
     * @param coins int整型  拥有的点券
     * @return int整型vector
        */
        struct Hero
        {
            int index;
            int value;  
        };
    
    vector<int> solution(vector<int>& costs, int coins) {
        int size = costs.size();
        int i = 0;
        Hero hero[size];
    
        vector<int>tmp;
        vector<int>ans;
        do
        {
            hero[i].index=i;
            hero[i].value=costs[i];
        } while ((++i)<size);
        sort(hero,hero+size,[](const Hero a,const Hero b){return a.value<b.value;});
        i = 0;
        coins-=hero[i].value;
        while (i<size-1&&coins>=0)
        {
            tmp.push_back(hero[i++].index);
            coins-=hero[i].value;

        }
        sort(tmp.begin(),tmp.end());
        for (int val : tmp)
        {
            ans.push_back(costs[val]);
        }
        
        return ans;
    }
};

  • 考完想到的改进思路:开辟的大小可以用coins+1表示,用二维动态数组而不是结构体数组
  1. 虾皮力扣原题
    通过率90%
class Solution:
    def LargestNum(self, nums) :
        nums=sorted(nums,key=lambda x:str(x)*3,reverse=True)
        nums=[str(i)for i in nums]
        return ''.join(nums)
  1. 字符串的倒序,如

”Hello, my friend!"

变成

“,olleH ym !dneirf”

通过率100%

class Solution {
public:
    /**
     * Note: 类名、方法名、参数名已经指定,请勿修改
     *
     * 
     * 
     * @param originStr string字符串  
     * @return string字符串
     */
    string ReverseString(string originStr) {
        // int i =0;
        int size =originStr.size();
        string tmp ="";
        string ans ="";
        for (int j = 0; j < size;j++)
        {
            if (originStr[j]==' ')    
            {
                ans+=tmp;
                if(j!=size-1)ans+="";
                tmp="";
            }
            else
            tmp = originStr[j]+tmp;
            
        }
        return ans;
    }
};
很抱歉,我无法提供关于shopee后端开发工程师笔试题的具体内容,因为我无法获取实时的笔试题目。但是,我可以给你一些关于后端开发工程师笔试题的一般性介绍和常见考点。 后端开发工程师笔试题通常涵盖以下几个方面: 1. 数据结构算法:常见的数据结构算法问题包括数组、链表、栈、队列、树、图等基本数据结构的实现和应用,以及排序算法、查找算法、动态规划等常见算法的理解和应用。 2. 编程语言与框架:对于后端开发工程师来说,熟练掌握至少一门编程语言(如Java、PythonC++等)以及相关的开发框架是必要的。笔试题可能会涉及语言特性、语法、面向对象编程、多线程编程等方面的问题。 3. 数据库与SQL:后端开发工程师通常需要与数据库打交道,因此对于数据库的基本概念和SQL语言的掌握是必要的。笔试题可能会涉及数据库设计、SQL查询优化、事务处理等方面的问题。 4. 网络与分布式系统:后端开发工程师需要了解网络通信的基本原理和常用协议,以及分布式系统的设计和实现。笔试题可能会涉及TCP/IP协议、HTTP协议、负载均衡、分布式缓存等方面的问题。 5. 系统设计与架构:后端开发工程师需要具备系统设计和架构的能力,能够设计高可用、可扩展、易维护的系统。笔试题可能会涉及系统设计原则、常见设计模式、微服务架构等方面的问题。 以上是一些常见的后端开发工程师笔试题考点,具体的题目可能因公司和职位要求而有所不同。希望这些信息对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值