题型
单选30分,十道
多选15分,五道,部分选对只有1分
编程55分,三道
选择题考点
计算机网络
拥塞控制、滑动窗口、三次握手、四次挥手、HTTPS协议
操作系统
进程管理、内存管理、Linux相关指令、锁机制、线程
面向对象
虚函数、继承、多态
数据结构
二叉树
C程序
递归
编程题
- 给定数组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表示,用二维动态数组而不是结构体数组
- 虾皮力扣原题
通过率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)
- 字符串的倒序,如
”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;
}
};