招行笔试编程第二题

本地测试全都通过,提交之后通过率为0.。。。有没有大佬指点一下。
bool cmp(pair<int, int> a, pair<int, int> b)
{
	if (a.first != b.first)
	{
		return a.first < b.first;
	}
	else
	{
		return a.second < b.second;
	}
}


int main()
{
	int T;
	cin >> T;
	while (T--)
	{
		int n;
		cin >> n;
		int tmp;
		vector<int> len;
		for (int i = 0; i < n; i++)
		{
			cin >> tmp;
			len.push_back(tmp);
		}
		vector<int> weight;
		for (int i = 0; i < n; i++)
		{
			cin >> tmp;
			weight.push_back(tmp);
		}
		vector<pair<int, int> > data;
		for (int i = 0; i < n; i++)
		{
			data.push_back(make_pair(len[i], weight[i]));
		}
		sort(data.begin(), data.end(), cmp);

		vector<bool> flag(n, 0);
		flag[0] = 1;
		int cnt = 0;
		stack<pair<int, int>> st;
		st.push(data[0]);
		while (st.size() < n)
		{
			bool start = true;
			for (int i = 0; i < n; i++)
			{
				if (!start)
				{
					pair<int, int> top = st.top();
					if (flag[i] == 0 && data[i].first >= top.first && data[i].second >= top.second)
					{
						flag[i] = 1;
						st.push(data[i]);
					}
				}
				else
				{
					st.push(data[i]);
					flag[i] = 1;
					start = false;
				}
			}
			cnt++;
		}
		cout << cnt << endl;
	}
	return 0;
}

#招行笔试##招商银行##笔试题目#
全部评论
https://www.nowcoder.com/discuss/393925我的思路,python20行全A
1 回复 分享
发布于 2020-03-28 10:23
第二题我的思路是两个属性从小到大排序,length优先和weight优先各做一次,取最小,实现绝对没问题……也是0% 不知道思路有没有问题
1 回复 分享
发布于 2020-03-27 21:06
我用java ac的,大概思路就是先创个类然后按长度排序,如果长度一样就按重量排序,然后对列表逐个遍历如果遇到后面比前面大的就标记,每遍历一次计数器加1,知道所有都被标记,然后返回计数器的值就行了。
1 回复 分享
发布于 2020-03-27 21:05
还有一个做法是第一关键字排序后算第二关键字的最长上升子序列,nlogn可解
点赞 回复 分享
发布于 2020-03-28 17:52
我觉得应该是排序以后再遍历查找,虽然我的这个题也没过,但是两个测例在本地通过的
点赞 回复 分享
发布于 2020-03-28 17:50
可以看看这个思路,终于看懂了,一看就会,一写就废了: https://blog.csdn.net/dingzi1875/article/details/101494695?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
点赞 回复 分享
发布于 2020-03-27 21:47
可以看看这个思路,终于看懂了,一看就会,一写就废 https://blog.csdn.net/dingzi1875/article/details/101494695?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
点赞 回复 分享
发布于 2020-03-27 21:47
谢谢7楼让我找到错误了,忘了注释掉第46行。 总体思路是将木棍先按长度排序,再按质量排序。 设一个栈,将访问过的木棍入栈,栈大小达到n时循环结束。 设一个标记数组,标记某根木棍是否被访问过。 在每次循环内,遍历木棍,如果木棍未被访问过,且长度和质量都大于等于栈顶元素的长度和质量,就将其入栈。每遍历一次就将结果加1。 还是太粗心了,戒骄戒躁🤣
点赞 回复 分享
发布于 2020-03-27 21:28
楼主试试 1 4 2 5 9 2 4 5 3 1 这个例子?你代码输出是1,但是应该最小是2吧。
点赞 回复 分享
发布于 2020-03-27 21:14
想用贪心做,结果通过率也是0。我猜通过率为0的原因是一个case中有多个测试用例,其中一个不对相当于这个case没通过。
点赞 回复 分享
发布于 2020-03-27 21:06
我也是,第二题始终通过的case为0,但是给的两个例子在本地都可以通过
点赞 回复 分享
发布于 2020-03-27 21:04
我回溯超时了,哎
点赞 回复 分享
发布于 2020-03-27 21:03
一样  一道题都没搞出来
点赞 回复 分享
发布于 2020-03-27 21:01

相关推荐

2025-11-28 11:13
门头沟学院 游戏策划
真顶不住了兄弟们…11&nbsp;月底了,秋招投了仨月,还是&nbsp;0offer,纯纯陪跑选手。从&nbsp;8&nbsp;月底就开始瞎忙活,前俩月还会为了面试挂掉崩溃到睡不着,现在心里早就没波澜了,跟一潭死水似的。不知道从啥时候起,也不焦虑了,就剩摆烂和逃避现实&nbsp;——&nbsp;简历不想改,面试题不想刷,连打开招聘软件的劲儿都没了。中间撑着我往下走的,其实是那点自我安慰:每次收到面试邀约,都告诉自己&nbsp;“挂了也没事,就当练手”,好歹能趁着准备的功夫捋捋项目逻辑,优化下面试话术,只要有进步,总能撞上一个机会。说实话也确实有点变化,从一开始一面就凉,到后来能冲进二面、三面,我还以为事情在往好的方向走…&nbsp;结果后面零星几个面试,又是一面挂、二面挂,无限循环。原来我以为的&nbsp;“进步”,根本就是自我感动的幻觉,说白了就是原地踏步。我到底收获啥了?面试还是那么拉胯,花了无数时间准备材料、练话术、做&nbsp;PPT,到最后连展示的机会都没有,每次都是不明不白被拒,纯属瞎忙活。现在彻底没面试邀约了,希望没了,动力也泄了,只剩下迷茫、麻木,还有点面试&nbsp;PTSD——&nbsp;一想到要面试就犯怵。我承认自己可能不够努力,但每次有机会的时候,我是真的拼尽全力去准备了啊。我还想再挣扎一下,还不想就这么放弃,但现在是真的没头绪了…&nbsp;到底还能做点啥,才能把这秋招的烂摊子盘活啊?
牛客77447303...:老哥没事,我去年双非硕没找到,今年毕业后这个月才接着找,半个月就找到了,给我的感觉就是企业都是需要尽快入职的(至少小企业是这样)。所以不要慌,毕业后社招也许能更快找到工作。
十一月总结
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务