小米笔试凉,第一题是这样写吗

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;

/*
输入用例:
目标信号值,下一行输入频段和损失值 freq:loss
找出距离最近的频段,输出损失值,保留一位小数,

2800
1950:10,3000:9,2500:15
*/
int main()
{
	int freq;
	cin >> freq;
	string str;
	cin >> str;
	vector<string> vec_str;
	vector<pair<int, int>> vec;
	int last = 0;
	for (int i = 0; i < str.size(); ++i)
	{
		if (',' == str[i])
		{
			vec_str.push_back(str.substr(last, i - last));
			last = i + 1;
		}
		if (str.size() - 1 == i)
			vec_str.push_back(str.substr(last, str.size() - last));
	}

	for (auto& x : vec_str)
	{
		for (int i = 0; i < x.size(); ++i)
		{
			if (':' == x[i])
			{
				int f = stoi(x.substr(0, i));
				int l = stoi(x.substr(i + 1, x.size() - i));
				vec.push_back(make_pair(f, l));
			}
		}
	}

	sort(vec.begin(), vec.end(), [](pair<int, int> e1, pair<int, int> e2) {
		return e2.first > e1.first;
		});
	//for (auto x : vec)
	//	cout << x.first << " " << x.second << endl;

	if (freq > vec[vec.size() - 1].first)
	{
		printf("%.1f", (double)vec[vec.size() - 1].second);
		return 0;
	}
	if (freq < vec[0].first)
	{
		printf("%.1f", (double)vec[0].second);
		return 0;
	}

	for (int i = 0; i < vec.size(); ++i)
	{
		int disright, disleft;
		if (vec[i].first > freq)
		{
			disright = vec[i].first - freq;
			disleft = freq - vec[i-1].first;
			cout << disright << " " << disleft << endl;
			if (disright == disleft)
				printf("%.1f", (vec[i].second + vec[i].first) / 2.0);
			if (disright > disleft)
				printf("%.1f", (double)vec[i - 1].second);
			if (disright < disleft)
				printf("%.1f", (double)vec[i].second);
			return 0;
		}
		
	}
	return 0;
}

#秋招 24届#
全部评论
对cpp选手太不友好了
点赞 回复 分享
发布于 2023-09-04 00:20 安徽
不用这么麻烦
点赞 回复 分享
发布于 2023-09-02 23:06 北京
第一题a了
点赞 回复 分享
发布于 2023-09-02 21:51 江苏
第一题就记录个gap,当当前的gap小于记录的gap,数组清0,存进去就好,一次遍历就出结果了。感觉这道题表达也有点问题
点赞 回复 分享
发布于 2023-09-02 21:41 上海
难受,用find和substr出了些问题,半天没做出来
点赞 回复 分享
发布于 2023-09-02 21:40 山东

相关推荐

群星之怒:1.照片可以换更好一点的,可以适量P图,带一些发型,遮住额头,最好穿的正式一点,可以适当P图。2.内容太少。建议添加的:求职意向(随着投递岗位动态更改);项目经历(内容太少了建议添加一些说明,技术栈:用到了什么技术,还有你是怎么实现的,比如如何确保数据传输稳定的,角色注册用到了什么技术等等。)项目经历是大头,没有实习是硬伤,如果项目经理不突出的话基本很难过简历筛。3.有些内容不必要,比如自我评价,校内实践。如果实践和工作无关千万别写,不如多丰富丰富项目。4.排版建议:建议排版是先基础信息,然后教育背景(要突出和工作相关的课程),然后专业技能(一定要简短,不要长篇大论,写你会什么,会的程度就可以),然后是项目经历(一定要详细,占整个简历一定要超过一半,甚至超过百分之70都可以)。最后如果有一部分空白的话可以填补上校内获得的专业相关的奖项,没有就写点校园经历和自我评价。5.技术一定要够硬,禁得住拷打。还有作息尽量保证正常,不要太焦虑。我24双非本科还是非科班,秋招春招各找了一段实习结果都没有转正,当时都想噶了,最后6月份在校的尾巴也找到一份工作干到现在,找工作有时很看运气的不要急着自我否定。 加油
点赞 评论 收藏
分享
04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务