力扣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四种类型。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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)