当前位置:网站首页>The minimum sum of the last four digits of the split digit of leetcode simple problem

The minimum sum of the last four digits of the split digit of leetcode simple problem

2022-07-06 15:03:00 ·Starry Sea

subject

Here's a four just Integers num . Please use num Medium digit , take num Split into two new integers new1 and new2 .new1 and new2 You can have Leading 0 , And num in all All digits must be used .
For example , Here you are. num = 2932 , The numbers you have include : Two 2 , One 9 And a 3 . Some of the possibilities [new1, new2] The number pair is [22, 93],[23, 92],[223, 9] and [2, 329] .
Please return what you can get new1 and new2 Of Minimum and .
Example 1:
Input :num = 2932
Output :52
explain : feasible [new1, new2] The number pair is [29, 23] ,[223, 9] wait .
The minimum sum is a number pair [29, 23] And :29 + 23 = 52 .
Example 2:
Input :num = 4009
Output :13
explain : feasible [new1, new2] The number pair is [0, 49] ,[490, 0] wait .
The minimum sum is a number pair [4, 9] And :4 + 9 = 13 .
Tips :
1000 <= num <= 9999
source : Power button (LeetCode)

Their thinking

   There are only two cases that can form a number pair , One is a number, which is a single digit , The other number is a three digit number , The other case is , Both numbers are double digits . Analyze two situations , Suppose the four digits of the four digits are a,b,c,d, Situation 1 :abc and d, that abc+d=a×100+b×10+c+d; Situation two :ab and cd, that ac+bd=a×10+b×10+c+d. No matter case one or case two, we should minimize their sum , Then the number of high-power positions should be smaller , Then according to situation one or two, let's assume a and b smaller ,c and d more , Obviously, the general situation of situation two is better than that of situation one , Now consider special numbers 0, Suppose the highest power is chosen 0, At best, situation one can only draw with situation two , So we take case two . In case 2, it is still necessary to analyze and select two smaller numbers , There are two larger numbers left , Obviously, let the largest of the two larger numbers follow the smallest of the two smaller numbers , The smaller of the two larger numbers is best followed by the larger of the two smaller numbers .

class Solution:
    def minimumSum(self, num: int) -> int:
        temp=[]
        while num>0:  # Split digit 
            temp.append(num%10)
            num//=10
        temp.sort()
        return temp[0]*10+temp[1]*10+temp[2]+temp[3]

 Insert picture description here

原网站

版权声明
本文为[·Starry Sea]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202131327153131.html