美的笔试 - C++开发

单选 - 25道

多线 - 6道

基础语法+操作系统+代码输出判断

编程两道题:

1.将一个数组进行整理,如果一个数的前两个数和等于该数,删除中间的数:

#include <bits/stdc++.h>
using namespace std;

int main(){
	int num;
	vector<int> vec;
	vector<int> data;
	while(cin>>num){
		data.emplace_back(num);
	}
	for(int i = 0 ; i<data.size() ; i++){
		if(vec.size()<2){
			vec.emplace_back(data[i]);
			continue;
		}
		int fst = vec[vec.size()-2];
		int sec = vec.back();
		if(data[i] == fst + sec){
			vec.pop_back();
			i--;
		}
		else vec.emplace_back(data[i]);
	}
	for(auto num : vec){
		cout<<num<<" ";
	}
	return 0;
} 

2.爬楼梯变化,不固定步数

#include <bits/stdc++.h>
using namespace std;

int main(){
	string str;
	cin>>str;
	vector<int> vec;
	for(int i = 0 ; i<str.length() ; i++){
		if(str[i] <= '9'&&str[i] >= '0'){
			int ptr = i;
			while(ptr<str.length()&&str[ptr] <= '9'&&str[ptr] >= '0')ptr++;
			string cur = str.substr(i , ptr-i);
			vec.emplace_back(stoi(cur));
			i = ptr;
		}
	}
	vector<int> dp(vec.size() , INT_MAX);
	dp[0] = 0;
	for(int i = 0 ; i<vec.size() ; i++){
		int cur = vec[i];
		for(int j = 1 ; j<=cur ; j++){
			if(i+j>=vec.size())break;
			dp[i+j] = min(dp[i+j] , dp[i]+1);
		}
	}
	cout<<dp.back();
	return 0;
}

#美的##笔试#
全部评论
2
送花
回复
分享
发布于 2023-09-01 23:43 陕西
投了多久能收到笔试啊?
1
送花
回复
分享
发布于 2023-09-04 09:35 辽宁
滴滴
校招火热招聘中
官网直投
请问笔试时间多久呀
点赞
送花
回复
分享
发布于 2023-09-02 11:36 天津
面了吗
点赞
送花
回复
分享
发布于 2023-09-04 11:19 天津

相关推荐

6 44 评论
分享
牛客网
牛客企业服务