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

2342. 数位和相等数对的最大和

我的解法:
对数组进行排序,最大数一定最先进入哈希表进行加和

class Solution {
public:int maximumSum(vector<int>& nums) {unordered_map<int, vector<int>> h;int ans = -1;sort(nums.begin(), nums.end());for (int i = nums.size() - 1; i >= 0; i--) {int num = nums[i];int sum = 0;while (num != 0) {sum += num % 10;num = num / 10;}h[sum].push_back(nums[i]);if (h[sum].size() >= 2) {ans = max(ans, h[sum][0] + h[sum][1]);continue;}}return ans;}
};

注意这里:

			if (h[sum].size() >= 2) {ans = max(ans, h[sum][0] + h[sum][1]);continue;}

我原来写成了:

			if (h[sum].size() >= 2) {ans = max(ans, h[sum][0] + h[sum][1]);break;}

这是不对的,不一定最先凑对的两个数字的加和最大。
例如:[51, 32, 91, 42, 71, 19]

优化:
由于1 <= nums[i] <= 1e9,所以每个数字对应的数位和最大值为9*9=81,于是初始化哈希表可以优化为大小为100的数组
在数组里存储遇到的最大num,当前数位和对应数字不为0时(即已有等于当前数位和的数字进入,可以确保保存当前数位和的最大数),则更新ans,其中“确保保存当前数位和的最大数”通过这句实现:

h[sum] = max(h[sum], num);

整体代码:

class Solution {
public:int maximumSum(vector<int>& nums) {vector<int> h(100, 0);int ans = -1;for (int num: nums) {int t = num;int sum = 0;while (t != 0) {sum += t % 10;t = t / 10;}if (h[sum] != 0) ans = max(ans, h[sum] + num);h[sum] = max(h[sum], num);}return ans;}
};
http://www.lryc.cn/news/234071.html

相关文章:

  • FISCO BCOS 3.0【01】搭建第一个区块链网络
  • UE4动作游戏实例RPG Action解析四:装备系统
  • AIGC之Stable Diffusion
  • PHP接收并处理请求中携带的xml格式的信息
  • 信息安全相关标准
  • Python入门学习篇(一)——注释变量输入输出
  • 基于单片机智能液位水位监测控制系统设计
  • iOS 添加震动效果
  • 合并word中参考文献-(Endnote生成)
  • linux(centos7)常用命令 开启关闭防火墙
  • 数据结构与算法面试题——C++
  • 数字音频工作站FL Studio21.1中文版本如何下载?
  • Linux 无名管道实现文件复制
  • 【机器学习】 逻辑回归算法:原理、精确率、召回率、实例应用(癌症病例预测)
  • 算法萌新闯力扣:存在重复元素II
  • 《洛谷深入浅出基础篇》——P3405 citis and state ——哈希表
  • 在QGIS中加载显示3DTiles数据
  • HBase学习笔记(3)—— HBase整合Phoenix
  • CentOS 7上生成HTTPS证书
  • 解决React遍历每次渲染多个根元素导致无法为元素赋值key的问题
  • 2023年软件安装管家目录最新
  • mac苹果笔记本应用程序在哪?有什么快捷方式吗?
  • py 循环打开多个页面
  • AD教程 (十八)导入常见报错解决办法(unkonw pin及绿色报错等)
  • ubuntu22.04下hadoop3.3.6+hbase2.5.6+phoenix5.1.3开发环境搭建
  • 【随手记】python语言的else语句在for、while等循环语句中的运用
  • RK3568 + YT 9215交换机芯片,MAC TO MAC 调试记录
  • Flutter笔记:桌面端应用多窗口管理方案
  • demo(三)eurekaribbonhystrix----服务降级熔断
  • 相机突然断电,保存的DAT视频文件如何修复