解法一

被除数是第一个数,这个是固定的,因此要求商最大,除数应该尽量小。从剩下的N-1个数中构造出最小除数,又因为每个数都是正整数,所以用第二个数除以剩下所有的其他数可以得到最小除数。最后根据题目要求构造表达式字符串。

  1. class Solution {
  2. public String optimalDivision(int[] nums) {
  3. if (nums.length == 1) {
  4. return Integer.toString(nums[0]);
  5. }
  6. if (nums.length == 2) {
  7. return Integer.toString(nums[0]) + "/" + Integer.toString(nums[1]);
  8. }
  9. StringBuilder stringBuilder = new StringBuilder();
  10. stringBuilder.append(Integer.toString(nums[0]) + "/(");
  11. for (int i = 1; i < nums.length - 1; ++i) {
  12. stringBuilder.append(Integer.toString(nums[i]) + "/");
  13. }
  14. stringBuilder.append(Integer.toString(nums[nums.length - 1]) + ")");
  15. return stringBuilder.toString();
  16. }
  17. }