本文主要是介绍LeetCode 553.最优除法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:
力扣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线程不安全,效率高一些。
这篇关于LeetCode 553.最优除法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!