LeetCode 训练场:1464. 数组中两元素的最大乘积
发布日期:2021-06-29 18:13:35 浏览次数:2 分类:技术文章

本文共 372 字,大约阅读时间需要 1 分钟。

1. 题目

2. 描述

给你一个整数数组 nums,请你选择数组的两个不同下标 ij_,_使 (nums[i]-1)*(nums[j]-1) 取得最大值。

请你计算并返回该式的最大值。

3. 思路

将数组进行排序后,取最后的两元素进行相乘返回即可,主要进行排序操作,时间复杂度为 O ( n ∗ l o g n ) O(n*logn) O(nlogn).

4. 实现

public int maxProduct(int[] nums) {
// 现将数组进行排序 Arrays.sort(nums); // 然后选取排序后数组的最后两个元素乘积 int size = nums.length; return (nums[size - 1] - 1) * (nums[size - 2] - 1);}

转载地址:https://cunyu1943.blog.csdn.net/article/details/107055664 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 训练场:977. 有序数组的平方
下一篇:LeetCode 训练场:1460. 通过翻转子数组使两个数组相等

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月09日 11时46分02秒