[leetcode] 最优除法 小思维

题目链接

在这里插入图片描述

如果是仅有一个数的时候直接返回那个数即可
如果有两个数,答案就是“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;
    }
};
posted @ 2022-04-26 21:36  PushyTao  阅读(24)  评论(0)    收藏  举报