【力扣】2578. 最小和分割

【力扣】2578. 最小和分割

文章目录

  • 【力扣】2578. 最小和分割
    • 1. 题目介绍
    • 2. 思路
    • 3. 解题代码
    • 4. 疑问?
    • 5. Danger
    • 参考

1. 题目介绍

给你一个正整数 num ,请你将它分割成两个非负整数 num1 和 num2 ,满足:

  • num1 和 num2 直接连起来,得到 num 各数位的一个排列。

换句话说,num1 和 num2 中所有数字出现的次数之和等于 num 中所有数字出现的次数。

  • num1 和 num2 可以包含前导 0 。
  • 请你返回 num1 和 num2 可以得到的和的 最小值

注意:

  • num 保证没有前导 0 。
  • num1 和 num2 中数位顺序可以与 num 中数位顺序不同。

示例:
在这里插入图片描述
在这里插入图片描述

2. 思路

  • 1)对数字数位分割,得到 list 后排序,两个数字分别:

    • 你一位,我一位的拿。
    • 有0的话,固定放在第二位
  • 2)当我们将给定的 num 分成 num1 和 num2 时,num1 中的数字应该是单调递增的。否则,例如 nums1=1243,我们将 4 和 3 交换可以得到更小的值。同理,nums2 中的数字也应该是单调递增的。

    • 接下来我们考虑 num1 和 num2 之间的情况。设 num1 中有一个数字 xxx 是从低到高的第 p (p≥0) 位,表示 x×10p,num2 中有一个数字 y 是从低到高的低 q 位,表示 y×10q。我们交换 x 和 y,不应该得到更小的值,因此有:
      x×10p+y×10q≤x×10q+y×10p,即:(x−y)×(10p−10q)≤0,也就是说:如果 x 的位数更高(即 10p≥10q ,那么 x 必须不能大于 y);如果 y 的位数更高,那么 y 必须不能大于 x。
    • 结合之前得出的 num1 和 num2 分别是单调递增的,这就告诉我们:
      任何一个数字,都不能大于任何一个数中比它位数更小的数字。
    • 当 num1 和 num2 位数不相等时,我们需要补上前导零使得它们位数相等。例如,1234 和 5 是满足上述要求的,但 234 和 15 的和显然更小,这是因为我们需要把 5 看成 0005,那么 1234 中的 1 与 0[00]55 中括号部分的两个 0 是不满足要求的。这也就告诉我们,num1 和 num2 的位数差不能超过 1,否则位数少的那个数能补上至少 2 个前导零,其中不是最高位的那些前导零和位数多的那个数的最高位是不满足要求的。

因此,我们就可以得出最小和的分割方法:

  • 将 num 的数字进行递增排序;
  • 按照递增顺序,交替地将数字分配给 num1 和 num2

3. 解题代码

class Solution:def splitNum(self, num: int) -> int:stnum = "".join(sorted(str(num)))num1, num2 = int(stnum[::2]), int(stnum[1::2])return num1 + num2

4. 疑问?

貌似没有对前导0进行限制,比如现在的答案是:

  • 1024 分成:02 和14就行

5. Danger

力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷,力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长。此外,力扣(LeetCode)致力于解决程序员技术评估、培训、职业匹配的痛点,逐步引领互联网技术求职和招聘迈向专业化。

  • 据了解到的情况,Easy题和Medium 题在面试中比较常见,通常会以手写代码之类的形式出现,您需要对问题进行分析并给出解答,并于面试官进行交流沟通,有时还会被要求分析时间复杂度8与空间复杂度°,面试官会通过您对题目的分析解答,了解您对常用算法的熟悉程度和您的程序实现功底。
  • 而在一些对算法和程序实现功底要求较高的岗位,Hard 题也是很受到面试官的青睐,如果您在面试中成功Bug-Free出一道Hard题,我们相信您一定会给面试官留下很深刻的印象,并极大增加拿到Offer的概率,据相关人士统计,如果您在面试成功解出一道Hard题,拿不到Offer的概率无限接近于0。
  • 所以,力扣中Easy和Medium相当于面试中的常规题,而Hard 则相当于面试中较难的题,解出—道Hard题,Offer可以说是囊中之物。

参考

【1】https://leetcode.cn/problems/split-with-minimum-sum/?envType=daily-question&envId=2023-10-09

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

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

相关文章

20231008工作心得:sql

1.SQL语句里的if的嵌套使用 if(product A and brand_name B,C,if(product A and brand_name !B,D,product)) as product if(A,B,C)。SQL里if函数,如果条件A成立,就显示B的值,否则就显示C。 这个代码的意思的&#x…

京东数据分析平台:9月中上旬白酒消费市场数据分析

9月份,围绕白酒的热点不断。9月5日,瑞幸咖啡官微发布消息称,瑞幸与贵州茅台跨界合作推出的酱香拿铁刷新单品纪录,首日销量突破542万杯,销售额破1亿元。9月14日,贵州茅台官微发布消息称与德芙推出联名产品“…

矩阵的相似性度量的常用方法

矩阵的相似性度量的常用方法 1,欧氏距离 欧式距离是最易于理解的一种距离计算方法,源自欧式空间中两点间的距离公式。 (1)二维平面上的点 a ( x 1 , y 1 ) a(x_1,y_1) a(x1​,y1​)和点 b ( x 2 , y 2 ) b(x_2,y_2) b(x2​,y2​)的欧式距离为 d ( x …

Zookeeper经典应用场景实战(二)

文章目录 1、 Zookeeper 分布式锁实战1.1、 什么是分布式锁1.2、 基于数据库设计思路1.3、 基于Zookeeper设计思路一1.4、 基于Zookeeper设计思路二 1、 Zookeeper 分布式锁实战 1.1、 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候,大家往往采用Sync…

Python中如何快速解析JSON对象数组

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 由于浏览器可以迅速地解析JSON对象,它们有助于在客户端和服务器之间传输数据。 本文将描述如何使用Python的JSON模块来传输和接收JSON数据。 JavaSc…

gici-open示例数据运行(ground_truth坐标的转换)

1. 坐标系转换说明 涉及的两个坐标转换: nmea_pose_to_pose :激光IMU中心到数据集IMU中心,主要是杆臂误差,转换关系为: //坐标转换的主要步骤(若发现有错误的地方,请评论指出) //定义激光IMU和数据集IMU之…

Java Agent之ByteBuddy

1:前言 在上一篇文章介绍 Java Agent 技术时,结合 Byte Buddy 技术实现了统计方法执行时间的功能。本次分享深入介绍 Byte Buddy 的一些基础知识,SkyWalking Agent 强大的地方就是重度使用该工具实现探针数据动态生成代码填充参数的。 2&am…

指定加拿大|环境科学老师获阿尔伯塔大学邀请函

U老师入选了省公派出国项目,其指定加拿大,并要求专业为世界排名领先,或者是能填补国内科研和技术空白的短板学科。我们利用广泛资源,开展精准申请,先后得到多所大学反馈,并获得4所大学的邀请函,…

怎么压缩pdf文件?分享缩小pdf文件的简单方法

在我们的日常生活和工作中,往往需要处理大量的PDF文件,而很多时候这些文件的大小会成为传输和存储的难题。为了解决这个问题,下面我们将介绍三种方法来压缩PDF文件,一起来看看吧~ 一、嗨格式压缩大师 首先,最简单也是…

STM32实战项目——WIFI远程开关灯

前言 其实WIFI开关灯在几个月前就想做了,但是对于没有云平台调试经验的我,一开始有些摸不着头脑,所以就搁置了。十一假期与老同学聊天时了解到他也在做一个远程开关灯的小项目,所以就重新开始了WIFI远程开关灯的小项目。 本文使用…

2023旅游产业内容营销洞察报告:如何升级经营模式,适配社媒新链路

2023年我国旅游业强劲复苏,上半年旅游消费增长显著,政府出台一系列文旅扶持政策后,旅游业也在积极寻求数字化转型的升级方式。 上半年以旅游消费为代表的服务业对经济的增长贡献率超过60%,旅游企业普遍实现经营好转,企…

开源联合、聚力共赢丨2023 CCF中国开源大会会议通知(第二轮)

会议简介 2023 CCF中国开源大会(CCF ChinaOSC)拟于2023年10月21日至22日在湖南省长沙市北辰国际会议中心召开。大会由中国计算机学会(CCF)与开放原子开源基金会主办,CCF开源发展委员会、湖南先进技术研究院承办&#…