算法练习——三个数的最大乘积

2021年1月20日LeetCode每日一题为628. 三个数的最大乘积,说一说思路,乘积最大需要三个因子都为最大的值,但是数的范围包括了负数,因此先对数组进行排序。负数与负数的积为正数,因此有可能大于数组中最大的三位数之积。因此代码如下:

1
2
3
4
5
6
7
class Solution {
public int maximumProduct(int[] nums) {
int len = nums.length;
Arrays.sort(nums);
return Math.max(nums[0] * nums[1] * nums[len - 1], nums[len - 3] * nums[len - 2] * nums[len - 1]);
}
}

今天的题目较为简单,因此尝试自己写了个二叉树的构建、遍历和深度搜索,花了点时间去思考树的一些特性,接下来的时间里将继续推进树结构的学习。