笔试编程常用--防忘记

1. 二维数组按列排序

bool cmp(vector<int> a, vector<int> b)
{
	if (a[0] != b[0]) return a[0] > b[0];    //从大到小排序
	if (a[1] != b[1]) return a[1] > b[1];
	if (a[2] != b[2]) return a[2] > b[2];
}

int main()
{
	int n;
	cin >> n;
	int ddhao, left, right;
	vector< vector <int> > number(n, vector<int>(3, 0));
	for (int i = 0; i < n; ++i)
	{
		cin >> ddhao >> left >> right;
		number[i][0] = ddhao;
		number[i][1] = left;
		number[i][2] = right;
	}
	//vector<vector<int>> number = { { 1,4,3 },{ 1,4,7 } ,{ 1,3,5 } ,{ 2,9,4 } ,{ 2,5,8 } ,{ 3,9,6 } };
	sort(number.begin(), number.end(), cmp);

	for (int i = 0; i < number.size(); ++i)
	{
		for (int j = 0; j < number[0].size(); ++j)
			cout << number[i][j] << " ";
		cout << endl;
	}

	for (auto i : number)
		cout << i[0] << i[1] << i[2]<< endl;
	system("pause");
	return 0;
}

2. map操作

	int n, x;
	cin >> n;
	map<int, int> data;
	while (n--)
	{
		cin >> x;
		data[x]++;
	}
	int max_num = 0;
	for (auto it = data.begin(); it != data.end(); ++it)
	{
		if (data.count(it->first + 1))
			max_num = it->second + data[it->first + 1];
		max_num = max(it->second, max_num);
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值