当前位置:网站首页>2342. 数位和相等数对的最大和 哈希优化
2342. 数位和相等数对的最大和 哈希优化
2022-08-02 14:11:00 【超级码力奥】
给你一个下标从 0 开始的数组 nums ,数组中的元素都是 正 整数。请你选出两个下标 i 和 j(i != j),且 nums[i] 的数位和 与 nums[j] 的数位和相等。
请你找出所有满足条件的下标 i 和 j ,找出并返回 nums[i] + nums[j] 可以得到的 最大值 。
示例 1:
输入:nums = [18,43,36,13,7]
输出:54
解释:满足条件的数对 (i, j) 为:
- (0, 2) ,两个数字的数位和都是 9 ,相加得到 18 + 36 = 54 。
- (1, 4) ,两个数字的数位和都是 7 ,相加得到 43 + 7 = 50 。
所以可以获得的最大和是 54 。
示例 2:
输入:nums = [10,12,19,14]
输出:-1
解释:不存在满足条件的数对,返回 -1 。
提示:
1 <= nums.length <= 105
1 <= nums[i] <= 109
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/max-sum-of-a-pair-with-equal-sum-of-digits
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。.
最初的想法:
枚举,两个和两个找是n^2,然后求各位的数字之和时间为logn,总的时间复杂度是O(n ^ 2logn)。所以要优化。
优化
对于数字之和,使用哈希表维护一个可以家出来他的最大值。然后从小到大枚举nums,更新结果
时间复杂度优化到O(nlogn)
class Solution {
public:
int maximumSum(vector<int>& nums) {
int res = -1;
unordered_map<int, int> hash;
for(auto x: nums){
int s = 0, y = x;
while(y) s += y % 10, y /= 10;
// 如果hash里边没有这个索引,默认返回0
if(hash.count(s)) res = max(res, x + hash[s]);
hash[s] = max(hash[s], x);
}
return res;
}
};
边栏推荐
- Software Testing Basics (Back)
- Win7 encounters an error and cannot boot into the desktop normally, how to solve it?
- 2021-10-14
- 2.登录退出,登录状态检查,验证码
- What should I do if I install a solid-state drive in Win10 and still have obvious lags?
- 基于最小二乘法的线性回归分析方程中系数的估计
- Redis的线程模型
- 推开机电的大门《电路》(一):电压,电流,参考方向
- 7. Redis
- How to update Win11 sound card driver?Win11 sound card driver update method
猜你喜欢
Win11系统找不到dll文件怎么修复
What should I do if the Win10 system sets the application identity to automatically prompt for access denied?
MATLAB绘图函数ezplot入门详解
【系统设计与实现】基于flink的分心驾驶预测与数据分析系统
MATLAB图形加标注的基本方法入门简介
yolov5官方代码解读——前向传播
5.事务管理
Use tencent cloud builds a personal blog
Win10上帝模式干嘛的?Win10怎么开启上帝模式?
5. Transaction management
随机推荐
KiCad Common Shortcuts
In-depth understanding of Golang's Map
模板系列-二分
模板系列-并查集
Redis的线程模型
A clean start Windows 7?How to load only the basic service start Windows 7 system
二叉排序树与 set、map
动态规划理论篇
7. Redis
总结计算机网络超全面试题
推开机电的大门《电路》(二):功率计算与判断
Win10安装了固态硬盘还是有明显卡顿怎么办?
How to update Win11 sound card driver?Win11 sound card driver update method
Publish module to NPM should be how to operate?Solutions to problems and mistake
Spark及相关生态组件安装配置——快速回忆
MATLAB制作简易小动画入门详解
cmake configure libtorch error Failed to compute shorthash for libnvrtc.so
How to add a one-key shutdown option to the right-click menu in Windows 11
pygame draw arc
Win10系统设置application identity自动提示拒绝访问怎么办