刷题第三天——Lintcode304.最大乘积&187.加油站

本文介绍了如何解决Lintcode上的304.最大乘积和187.加油站问题。对于304题,通过排序后选择三个最大正数或两个最小数与最大数相乘求解。187题则需要遍历所有加油站,判断从每个站出发能否完成一圈,使用贪心策略更新最合适的起点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

三天没写题了,这两个是女神节写的。


304.最大乘积

题目描述:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大。题目链接

point是

  • nums.size<=500000
  • -10000 <= nums[i] <= 10000−10000<=nums[i]<=10000

题目分析:

每次感觉自己想的十分复杂,其实十分easy。

(1)给数组从小到大排序

(2)找到正数三个最大的相乘,或者两个最小的数和最大的相乘。

public class Solution {
    /**
     * @param nums: Unordered array
     * @return: return the largest product
     */
    public long MaximumProduct(int[] nums) {
        // write your code here
        if(nums.length<3)
            return 0;

        Arrays.sort(nums);//从小到大排序

        int n = nums.length;

        //找出最大的三个正数相乘nums[n-1],nums[n-2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值