2025年秋招-华为-9月3号开发岗真题第一题答案
https://www.nowcoder.com/share/jump/5761136381776948425416
华为开发岗真题 做了半天
第一题答案
#include <cstdio>
#include <iostream>
#include <vector>
#include <map>
#include <string>
using namespace std;
//最后联盟的最终能量
int endx=0;
//定义一个函数来计算联盟的实力总值
void addx(string name);
//定义一个类存放各个星际的信息
class xingji{
public: string name;
int x;
map<string,int> fs;
void setfirend(string friend1){
if (!fs[friend1]==1) {
fs[friend1]=1;
}
}
//定义这个i主要是为了后续在计算联盟总能量时避免重复加同一个星际的等级
int i=1;
};
//定义一个存放星际的数组v来记录每个星际对象
vector<xingji> v;
int main() {
int n;
cin>>n;
//给容器v里放入我们的每个星际对象
for(int i=0;i<n;i++){
string name;
int x;
cin>>name>>x;
xingji bobi;
bobi.name=name;
bobi.x=x;
v.push_back(bobi);
}
//定义变量 星际轨道的数量
int guidao;
cin>>guidao;
string name,friend1;
for(int i=0;i<guidao;i++){
cin>>name>>friend1;
for(auto &gui:v){
if(gui.name == name){
gui.setfirend(friend1);
}else if(gui.name == friend1){
gui.setfirend(name);
}
}
}
//maxx表示等级最高星际在v容器里的下标,count主要用来记录循环的当前的下标,temp表示当前遇到过最大的等级是多少级
int maxx=0,count=0,temp=0;
//计算出等级最高的星际
for(auto& gui:v){
if(gui.x>temp){
temp=gui.x;
maxx=count;
}
count++;
}
addx(v[maxx].name);
cout<<v[maxx].name<<" "<<endx;
}
//实现计算联盟总能量的函数
void addx(string name) {
//for循环区遍历找到最大等级的星际
for (auto& xing:v) {
if (xing.name==name && xing.i!=0) {
endx+=xing.x;
xing.i=0;
if (!xing.fs.empty()) {
for (auto& f:xing.fs) {
//使用嵌套让盟友也以同样的方式加他盟友的实力
addx(f.first) ;
}
}
}
}
}
华为开发岗真题 做了半天
第一题答案
#include <cstdio>
#include <iostream>
#include <vector>
#include <map>
#include <string>
using namespace std;
//最后联盟的最终能量
int endx=0;
//定义一个函数来计算联盟的实力总值
void addx(string name);
//定义一个类存放各个星际的信息
class xingji{
public: string name;
int x;
map<string,int> fs;
void setfirend(string friend1){
if (!fs[friend1]==1) {
fs[friend1]=1;
}
}
//定义这个i主要是为了后续在计算联盟总能量时避免重复加同一个星际的等级
int i=1;
};
//定义一个存放星际的数组v来记录每个星际对象
vector<xingji> v;
int main() {
int n;
cin>>n;
//给容器v里放入我们的每个星际对象
for(int i=0;i<n;i++){
string name;
int x;
cin>>name>>x;
xingji bobi;
bobi.name=name;
bobi.x=x;
v.push_back(bobi);
}
//定义变量 星际轨道的数量
int guidao;
cin>>guidao;
string name,friend1;
for(int i=0;i<guidao;i++){
cin>>name>>friend1;
for(auto &gui:v){
if(gui.name == name){
gui.setfirend(friend1);
}else if(gui.name == friend1){
gui.setfirend(name);
}
}
}
//maxx表示等级最高星际在v容器里的下标,count主要用来记录循环的当前的下标,temp表示当前遇到过最大的等级是多少级
int maxx=0,count=0,temp=0;
//计算出等级最高的星际
for(auto& gui:v){
if(gui.x>temp){
temp=gui.x;
maxx=count;
}
count++;
}
addx(v[maxx].name);
cout<<v[maxx].name<<" "<<endx;
}
//实现计算联盟总能量的函数
void addx(string name) {
//for循环区遍历找到最大等级的星际
for (auto& xing:v) {
if (xing.name==name && xing.i!=0) {
endx+=xing.x;
xing.i=0;
if (!xing.fs.empty()) {
for (auto& f:xing.fs) {
//使用嵌套让盟友也以同样的方式加他盟友的实力
addx(f.first) ;
}
}
}
}
}
全部评论
有没有招人的,找不到工作啊
相关推荐
04-24 19:03
华南理工大学 算法工程师 点赞 评论 收藏
分享
查看9道真题和解析