题目链接:
力扣https://leetcode-cn.com/problems/optimal-division/
【分析】要使最后结果最大,则需要使第一个数除以的后面最小,因为数字都是大于1的,所以后面肯定越除越小,所以当n>2时,只需要把后面扩起来即可。
public String optimalDivision(int[] nums) {
int n = nums.length, i;
String ans = "" + nums[0];
if(n == 1) return ans;
if(n == 2){
return ans + "/" + nums[1];
}else{
StringBuilder sb = new StringBuilder();
sb.append(ans);
sb.append("/(");
for(i = 1; i < n; i++){
if(i == 1) sb.append(String.valueOf(nums[i]));
else {
sb.append(String.valueOf("/"));
sb.append(String.valueOf(nums[i]));
}
}
sb.append(")");
return sb.toString();
}
}
StringBuilder与StringBuffer的区别:StringBuilder线程不安全,效率高一些。