当前位置: 首页 > article >正文

(hash表+vector 数位和相等数对的最大和)leetcode 2342

 一定要断点调试看看数据对不对的上!!!不然很容易弄不清楚值和下标

这个题意思是在nums中找出相同数位和的值

如 数位和为7

nums中符合要求的有 43,7

在这些数中选两个相加取最大值,再与其他数位和取得的相加最大值比较,最后返回最大的(看示例1)

我们先对整个数组排序

用unordered_map+vector把相同数位和的值统计在一块

如下图

7(数位和):

值:7,43

每个数位和为一类

在一类中取数组的最后两个值

再跟每一类比较即可。

代码如下

class Solution {
public: 
   int cdigit(int n)
{
	int ans = 0;
	while (n > 0)
	{
		ans += n % 10;
		n /= 10;
	}
	return ans;
}

int maximumSum(vector<int>& nums) 
{
	sort(nums.begin(), nums.end());
	unordered_map<int,vector<int>>my_map;
	for (int i=0;i<nums.size();i++)
	{
		int t=cdigit(nums[i]);
		my_map[t].push_back(nums[i]);
	}
	int ans = -1;
	for (auto n : my_map)
	{
		vector<int>& a = n.second;
		if (a.size() < 2)
			continue;

		ans = max(ans, (a[a.size() - 1] + a[a.size() - 2]));
	}
	return ans;

}
};


http://www.kler.cn/a/589660.html

相关文章:

  • CUDA多线程
  • EB-Cable许可证的常见问题及解决方案
  • 贪心算法(7)(java) 分发饼干
  • C#语法基础总结
  • 蓝桥杯省赛(2024)
  • 如何创建HTML自定义元素:使用 Web Component 的最佳实践
  • 从零精通机器学习:线性回归入门
  • 书摘 ASP.NET Core技术内幕与项目实战:基于DDD与前后端分离
  • Flink 初体验:从 Hello World 到实时数据流处理
  • Chat2DB:让数据库管理像聊天一样简单
  • Windows 命令行终端常用的基础命令
  • RxSwift 学习笔记第四篇之RxSwift在项目中的简单应用
  • (C语言)指针与指针数组的使用教学(C语言基础教学)(指针教学)
  • Java中的消息中间件对比与解析:RocketMQ vs RabbitMQ
  • Matlab GPU加速技术
  • 蓝桥杯备赛(基础语法3)
  • 嵌入式八股,手撕线程池(C++)
  • vue3+Ts+elementPlus二次封装Table分页表格,表格内展示图片、switch开关、支持
  • 计算机图形学学习日志3
  • 数智读书笔记系列018 《多模态大模型:技术原理与实战》解锁多模态从原理到实战的深度探索