招行笔试编程第二题

本地测试全都通过,提交之后通过率为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;
}

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

相关推荐

评论
1
6
分享
正在热议
# 25届秋招总结 #
440428次浏览 4493人参与
# 春招别灰心,我们一人来一句鼓励 #
41455次浏览 524人参与
# 阿里云管培生offer #
119782次浏览 2219人参与
# 地方国企笔面经互助 #
7923次浏览 18人参与
# 虾皮求职进展汇总 #
114057次浏览 883人参与
# 实习,投递多份简历没人回复怎么办 #
2453918次浏览 34847人参与
# 北方华创开奖 #
107295次浏览 599人参与
# 实习必须要去大厂吗? #
55665次浏览 960人参与
# 同bg的你秋招战况如何? #
75478次浏览 551人参与
# 提前批简历挂麻了怎么办 #
149813次浏览 1977人参与
# 投递实习岗位前的准备 #
1195668次浏览 18546人参与
# 你投递的公司有几家约面了? #
33170次浏览 188人参与
# 双非本科求职如何逆袭 #
661868次浏览 7394人参与
# 机械人春招想让哪家公司来捞你? #
157600次浏览 2267人参与
# 如果公司给你放一天假,你会怎么度过? #
4723次浏览 54人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11332次浏览 270人参与
# 发工资后,你做的第一件事是什么 #
12405次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35599次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20087次浏览 240人参与
# 实习想申请秋招offer,能不能argue薪资 #
39225次浏览 314人参与
# 我的上岸简历长这样 #
451915次浏览 8088人参与
# 非技术岗是怎么找实习的 #
155842次浏览 2120人参与
牛客网
牛客企业服务