最优除法
贴一下代码
function optimalDivision(nums: number[]): string {
if(nums.length === 1) return nums[0] + '';
if(nums.length === 2) return nums[0] + '/' + nums[1];
let s = nums.shift();
let result = '';
for(let i = 0; i < nums.length; i++){
if(i === nums.length-1){
result = result + nums[i]
} else {
result = result + nums[i] + '/'
}
}
result = s + '/' + '(' + result + ')'
return result
};
思路:
- 直接写确实我做不出来【doge】,看了下评论区大佬的思路
- 因为所有的数字都是 / 连接的,所以这个是除数和被除数的关系,要想让结果最大,那就是除数最小
- 所以除数最小的方式是除了第一项外,后面所有的数相除后的结果最小