返回顶部

2342

给你一个下标从 0 开始的数组 nums ,数组中的元素都是 正 整数。请你选出两个下标 i 和 ji != 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 。

复制代码
class Solution(object):
    def sum_digit(self,num):
        ans = 0 
        while(num>=9):
            ans = ans + num%10
            num = num // 10
        return ans+num
    def maximumSum(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        ans = -1
        l = len(nums)
        num_sum = {}
        for i in range(l):
            num_sum[i] = self.sum_digit(nums[i])
        new_dict = {}  
        for key, value in num_sum.items():  
            if value in new_dict:  
                new_dict[value].append(nums[key])  
            else:  
                new_dict[value] = [nums[key]]
        for waiting in new_dict.values():
            if len(waiting)>1:
                sorted_list = sorted(waiting, reverse=True)  
                ans = max(ans,sorted_list[0]+sorted_list[1])
        return ans
复制代码

居然没超时

 

posted @   YuhangLiuCE  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示