leetcode刷题55.环形链表——Java版
Posted 一条coding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode刷题55.环形链表——Java版相关的知识,希望对你有一定的参考价值。
⭐欢迎订阅《leetcode》专栏,每日一题,每天进步⭐
排序之后最大乘积就两种情况:1、如果全是正数就是最后三个数相乘 2、如果有负数最大的乘机要么是最后三个数相乘,要么是两个最小的负数相乘再乘以最大的正数
——leetcode此题热评
前言
哈喽,大家好,我是一条。
糊涂算法,难得糊涂
《糊涂算法》专栏上线倒计时——7天
Question
628. 三个数的最大乘积
难度:简单
给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入:nums = [1,2,3] 输出:6
示例 2:
输入:nums = [1,2,3,4] 输出:24
示例 3:
输入:nums = [-1,-2,-3] 输出:-6
Solution
- 注意可以有负数
- 注意两个负数相乘为正数
三个数乘积最大有几种情况?
- 三个最大正数的乘积,以及两个最小负数与最大正数的乘积,二者之间的最大值即为所求答案。
- 如何找打最大正数和最小负数?
- 排序 or 线性扫描
Code
所有
leetcode
代码已同步至github欢迎
star
/**
* @author 一条coding
*/
class Solution {
public int maximumProduct(int[] nums) {
// 升序
Arrays.sort(nums);
int n = nums.length;
return Math.max(nums[0] * nums[1] * nums[n - 1], nums[n - 3] * nums[n - 2] * nums[n - 1]);
}
}
Result
复杂度分析
- 时间复杂度:O(N)
🌈寻宝
⭐今天是坚持刷题更文的第47/100天
⭐各位的点赞、关注、收藏、评论、订阅就是一条创作的最大动力
⭐更多算法题欢迎关注专栏《leetcode》
为了回馈各位粉丝,礼尚往来,给大家准备了一些算法教学视频和电子书
需要的小伙伴可以点这里
以上是关于leetcode刷题55.环形链表——Java版的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—141.环形链表(链表)—day01