算法积累
计算最大数
对数组进行排序,取最大的n个数和 (最大数*(绝对值乘积最大的数)),两者取最大值即为最大数。
/** * 題目:求一个整数数组中的三个数最大乘积 * 思路:若全是正數,則数组按顺序排序后,最大三个数的乘积即为最大值 * 若全是负数,同样最大三个数的乘积即为最大值 * 若既有正数也有负数,则;两数的绝对值最大值*最大正数 * 两数的绝对值= (两最大正数的乘积 或者两最小负数的乘积) */ public long getMax(int[] args) { Arrays.sort(args); int length = args.length; //全正数和全负数的最大值 int maxNum = args[length-1] * args[length-2] * args[length-3]; //既有正数也有负数 // int maxNum2 = args[length-1] * (两数的绝对值最大值 = ) int maxNum2 = args[length-1] * args[0] * args[1]; int maxNum3 = args[length-1] * args[length-2] * args[length-3]; return Math.max(maxNum, maxNum2); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人