力扣day2

时间:2024-10-26 21:51:09

1.给你一个正整数 n ,返回 2 n 的最小公倍数(正整数)。

例如n = 55 和 2 的最小公倍数是 10 
思路:如果一个数对二求余,余数为0,那么这个数本身就是所要求的最小公倍数,如果余数不为0,那么这个数乘以2就是要求的最小公倍数。
class Solution:
    def smallestEvenMultiple(self, n: int) -> int:
        if n%2==0:
            return n
        else:
            return n*2

 

2.给你一个四位正整数 num ,请你使用 num 中的数位 ,将 num 拆成两个新的整数 new1 和 new2 。new1 和 new2 中可以有前导0,且 num 中所有数位都必须使用。

        比如给你 num = 2932 ,你拥有的数位包括:两个 2 ,一个 9 和一个 3 。一些可能的 [new1, new2] 数对为 [22, 93][23, 92][223, 9] 和 [2, 329] ,请你返回可以得到的 new1 和 new2 的最小和。

思路:把数字转化为列表,主要就是用到排序函数sort,排完序这个结果就出来了,默认是按升序的,所以s[0]+s[1]这样字符串连接后就是第一个最小的数s[1]+s[2]拼接后就是第二个最小的数,但数字不能直接转化为list,原因是整数对象并不是可迭代的,在Python中,你需要先将整数转换为字符串,然后再将字符串转换为列表,最后返回值时再转化为int就行,这个必须要有4位数字,而题目刚好就是四位数字的要求。

class Solution:
    def minimumSum(self, num: int) -> int:
        s=list(str(num))
        s.sort()
        return int(s[0]+s[2])+int(s[1]+s[3])