如果是仅有一个数的时候直接返回那个数即可
如果有两个数,答案就是“a/b”
如果是三个数以上{
为了让结果最大,那么说要让被除数更小。在整数的情况下,除法只会让数越除越小,所以说把除了第一个数之外的所有数放在括号里,比如:
a/(b/c/d/…/f)
}
class Solution { public: string optimalDivision(vector<int>& nums) { string ret = ""; int n = nums.size(); ret += to_string(nums[0]); if(n == 1) return ret; if (n > 1) ret += "/"; if (n > 2) ret += "("; for(int i = 1;i <= n - 2;i ++) { ret += to_string(nums[i]); ret += "/"; } ret += to_string(nums[n-1]); if(n > 2) ret += ")"; return ret; } };
文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树leetcode-动态规划22-括号生成8242 人正在系统学习中