Leetcode算法——553. 最优除法

Leetcode算法——Leetcode算法——553. 最优除法

题目

题目链接

思路

数学问题
因为所有的数字都是由除法链接,所以不管分子如何变化,都可以将除第一个元素之外的元素移到分母。例 a / ( b / c ) d = a ( b / c ) × d \frac{a/(b/c)}{d} = \frac{a}{(b/c) \times d} da/(b/c)​=(b/c)×da​。所以输出结果的分子确定为列表中第一个元素,则什么时候这个数字能取到最大呢?分子确定时,分母越小整体越大,因为给定原始列表内元素都大于等于2所以将第第二个数字一直除以后面的所有数即可取到最小的分母。
注意,str.join(sequence),join函数将字符串str插入列表sequence每个元素之间(首尾不会添加)并返回拼接形成的字符串。

例
"!sfr!".join(["hust", "cs", "sorth", "cv"])
# 输出:hust!sfr!cs!sfr!sorth!sfr!cv

Python3解法

def optimalDivision(self, nums: List[int]) -> str:
        if len(nums)==1:
        	return str(nums[0])
        if len(nums)==2:
        	return '/'.join(map(str,nums))
        result = list(map(str,nums))
        result[1]='('+result[1]
        return '/'.join(result)+')'
上一篇:Vue Router(9)


下一篇:Markdown学习