随笔 - 384  文章 - 0  评论 - 0  阅读 - 13万

力扣628(java)-三个数的最大乘积(简单)

题目:

给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 

示例 1:

输入:nums = [1,2,3]
输出:6
示例 2:

输入:nums = [1,2,3,4]
输出:24
示例 3:

输入:nums = [-1,-2,-3]
输出:-6

提示:

3 <= nums.length <= 104
-1000 <= nums[i] <= 1000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-product-of-three-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

方法一:

1.先利用冒泡排序,将数组从大到小进行排序;

2.计算最大值

     如果数组中元素都是正数或负数,最大乘积就是排序后的前三个数的乘积;

     如果数组中元素有正有负,最大乘积就是排序后的第一个数和最后两个数的乘积。

代码1:

 但用时很长!!!

 

 方法二:

与方法一思路一致,但使用了更简洁的代码

1.将数组进行排序,从小到大;

2.也思考两种情况

    如果数组中的数都为正数或者负数,则最大乘积就是排序后数组的最后三个数的乘积;

    如果数组中的数有正有负,则最大乘积就是排序后数组中第一第二个数与最后一个数的乘积。

代码2:

 

小知识:

1.冒泡排序!!!

2.Arrays.toString():想直接把数组中的内容打印出来,直接调用Arrays类中的toString()方法

   直接使用toString方法只会打印出数组的地址

    注意:Arrays是一个工具类,toString()是方法,该方法支持入参可以是long,float,double,int,boolean,byte,object
型的数组。

3.Arrays.sort(int[] a):是对一个数组的所有元素进行排序,并且是按从小到大的顺序。

4..Math.max(参数1,参数2)是一个静态的工具方法,主要用来比较两个相同类型参数的大小,支持的类型有double,float,int,long四种类型。

 

posted on   我不想一直当菜鸟  阅读(205)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示