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

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你一个下标从 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 <= 10^5
1 <= nums[i] <= 10^9

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/max-sum-of-a-pair-with-equal-sum-of-digits
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 和作为 key,值为数字的 list,之后对 list 排序,取最大的2个
class Solution:def maximumSum(self, nums: List[int]) -> int:def bitsum(x):s = 0while x:s += x%10x //= 10return sd = defaultdict(list)for x in nums:d[bitsum(x)].append(x)ans = -1for k, v in d.items():if len(v) > 1:v.sort()ans = max(ans, sum(v[-2:]))return ans

384 ms 27.4 MB Python3

  • 排序,可以改为只保留最大的两个
class Solution:def maximumSum(self, nums: List[int]) -> int:def bitsum(x):s = 0while x:s += x%10x //= 10return sd = defaultdict(list)for x in nums:s = bitsum(x)if len(d[s]) <= 1:d[s].append(x)else:arr = d[s]if arr[0] > arr[1]:arr[0], arr[1] = arr[1], arr[0]if x > arr[0]:d[s] = [x, arr[1]]ans = -1for k, v in d.items():if len(v) > 1:ans = max(ans, sum(v))return ans

372 ms 26.5 MB Python3


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件项目管理-构建之法-四周总结

写在前面 课程名&#xff1a;软件项目管理 授课人&#xff1a;东北师范大学 杨贵福&#xff08; http://www.cnblogs.com/younggift/&#xff09; 教材&#xff1a;《构建之法 - 现代软件工程》 作者&#xff1a;邹欣老师 &#xff08;博客&#xff1a;http://www.cnblogs.com…

一、Vue基础语法学习笔记系列——插值操作(Mustache语法、v-once、v-html、v-text、v-pre、v-cloak)、绑定属性v-bind(绑定class、style)、计算属性

一、插值操作 1. Mustache 如何将data中的文本数据&#xff0c;插入到HTML中呢&#xff1f; 我们已经学习过了&#xff0c;可以通过Mustache语法(也就是双大括号)。 Mustache: 胡子/胡须. 我们可以像下面这样来使用&#xff0c;并且数据是响应式的 2. v-once 但是&#xff0…

LeetCode 2348. 全 0 子数组的数目

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums &#xff0c;返回全部为 0 的 子数组 数目。 子数组 是一个数组中一段连续非空元素组成的序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,0,0,2,0,0,4] 输出&#xff1a;6 解释&#xff1a; 子数组 [0] 出现了…

二、Vue基础语法学习笔记——事件监听v-on、条件判断(v-if、v-else-if、v-else、v-show)、循环遍历(v-for遍历数组对象,key属性、检测数组更新)、图书案例、双向绑定

四、事件监听 在前端开发中&#xff0c;我们需要经常和用于交互。 这个时候&#xff0c;我们就必须监听用户发生的时间&#xff0c;比如点击、拖拽、键盘事件等等 在Vue中如何监听事件呢&#xff1f;使用v-on指令 v-on介绍 作用&#xff1a;绑定事件监听器 缩写&#xff1a; 预…

LeetCode 2352. 相等行列对

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始、大小为 n x n 的整数矩阵 grid &#xff0c;返回满足 Ri 行和 Cj 列相等的行列对 (Ri, Cj) 的数目。 如果行和列以相同的顺序包含相同的元素&#xff08;即相等的数组&#xff09;&#xff0c;则认为二者是相等的。 示…

三、Vue组件化开发学习笔记——组件化的基本步骤、全局组件和局部组件、父组件和子组件、注册组件的语法糖、模板分离写法、组件的数据存放

一、什么是组件化&#xff1f; 人面对复杂问题的处理方式&#xff1a; 任何一个人处理信息的逻辑能力都是有限的 所以&#xff0c;当面对一个非常复杂的问题时&#xff0c;我们不太可能一次性搞定一大堆的内容。 但是&#xff0c;我们人有一种天生的能力&#xff0c;就是将问题…

LeetCode 2353. 设计食物评分系统(sortedcontainers)

文章目录1. 题目2. 解题1. 题目 设计一个支持下述操作的食物评分系统&#xff1a; 修改 系统中列出的某种食物的评分。返回系统中某一类烹饪方式下评分最高的食物。 实现 FoodRatings 类&#xff1a; FoodRatings(String[] foods, String[] cuisines, int[] ratings) 初始化…

四、Vue组件化开发学习笔记——父子组件通信,父级向子级传值(props),子级向父级传值(自定义事件),slot插槽

一、父子组件的通信 在上一篇博文中&#xff0c;我们提到了子组件是不能引用父组件或者Vue实例的数据的。 但是&#xff0c;在开发中&#xff0c;往往一些数据确实需要从上层传递到下层&#xff1a; 比如在一个页面中&#xff0c;我们从服务器请求到了很多的数据。其中一部分数…

LeetCode 2336. 无限集中的最小数字(SortedSet)

文章目录1. 题目2. 解题1. 题目 现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, …] 。 实现 SmallestInfiniteSet 类&#xff1a; SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包含 所有 正整数。int popSmallest() 移除 并返回该无限集中的最小整数。void ad…

C# - 类_使用新成员隐藏基类成员

1 using System;2 3 namespace 类_使用新成员隐藏基类成员4 {5 // 基类 : Animal6 public class Animal7 {8 // 基类的普通方法Eat(), 并未用Virtual修饰9 public void Eat() 10 { 11 Console.WriteLine("动物吃的方法: …

五、Vue模块化开发学习笔记——JavaScript原始功能、匿名函数的解决方案、使用模块作为出口、CommonJS、ES6 export和import的使用

一、JavaScript原始功能 -在网页开发的早期&#xff0c;js制作作为一种脚本语言&#xff0c;做一些简单的表单验证或动画实现等&#xff0c;那个时候代码还是很少的。 那个时候的代码是怎么写的呢&#xff1f; 直接将代码写在<script>标签中即可 随着ajax异步请求的出现&…

LeetCode 2333. 最小差值平方和(贪心)

文章目录1. 题目2. 解题1. 题目 给你两个下标从 0 开始的整数数组 nums1 和 nums2 &#xff0c;长度为 n 。 数组 nums1 和 nums2 的 差值平方和 定义为所有满足 0 < i < n 的 (nums1[i] - nums2[i])^2 之和。 同时给你两个正整数 k1 和 k2 。你可以将 nums1 中的任意…

[na][tools]快速ping网段工具-QuickPing

一款神器 quickping 能够很快的探测出该网断分出去哪些地址. 在线的会显示绿色 在线的有主机名的显示为亮绿色 转载于:https://www.cnblogs.com/iiiiher/p/5362403.html

六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离

一、认识webpack 什么是webpack&#xff1f; 这个webpack还真不是一两句话可以说清楚的。我们先看看官方的解释&#xff1a; At its core, webpack is a static module bundler for modern JavaScript applications.从本质上来讲&#xff0c;webpack是一个现代的JavaScript应用…

LeetCode 2349. 设计数字容器系统(SortedSet)

文章目录1. 题目2. 解题1. 题目 设计一个数字容器系统&#xff0c;可以实现以下功能&#xff1a; 在系统中给定下标处 插入 或者 替换 一个数字。 返回 系统中 给定数字 的最小下标。 请你实现一个 NumberContainers 类&#xff1a; NumberContainers() 初始化数字容器系统…

七、Vue cli详解学习笔记——什么是Vue cli ,Vue cli的使用(安装,拉取2.x模板,初始化项目),Vue cli2详解,Runtime-Compiler和Runtime-only区别

一、什么是Vue CLI 如果你只是简单写几个Vue的Demo程序, 那么你不需要Vue CLI. 如果你在开发大型项目, 那么你需要, 并且必然需要使用Vue CLI 使用Vue.js开发大型应用时&#xff0c;我们需要考虑代码目录结构、项目结构和部署、热加载、代码单元测试等事情。如果每个项目都要手…

我们

我们的 转载于:https://www.cnblogs.com/xxzhou/p/5364606.html

LeetCode 2343. 裁剪数字后查询第 K 小的数字

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的字符串数组 nums &#xff0c;其中每个字符串 长度相等 且只包含数字。 再给你一个下标从 0 开始的二维整数数组 queries &#xff0c;其中 queries[i] [ki, trimi] 。对于每个 queries[i] &#xff0c;你需要&#x…

八、Vue cli3详解学习笔记

一、认识Vue CLI3 1.1 vue-cli 3 与 2 版本有很大区别&#xff1a; vue-cli 3 是基于 webpack 4 打造&#xff0c;vue-cli 2 还是 webapck 3vue-cli 3 的设计原则是“0配置”&#xff0c;移除的配置文件根目录下的&#xff0c;build和config等目录vue-cli 3 提供了 vue ui 命…

LeetCode 1947. 最大兼容性评分和(状态枚举DP)

文章目录1. 题目2. 解题1. 题目 有一份由 n 个问题组成的调查问卷&#xff0c;每个问题的答案要么是 0&#xff08;no&#xff0c;否&#xff09;&#xff0c;要么是 1&#xff08;yes&#xff0c;是&#xff09;。 这份调查问卷被分发给 m 名学生和 m 名导师&#xff0c;学生…