力扣每日一题—盛最多水的容器

该博客介绍了如何使用双指针法解决力扣中的一个问题,即找到能盛最多水的两个柱子。通过分析双指针法的原理和优势,解释了为何从两边向中间移动较短边可以更有效地找到最大面积,并通过示意图辅助理解。文章还讨论了在某些情况下移动短边可能导致面积暂时减小的情况,但强调不应因此放弃搜索,以确保找到最佳解决方案。
摘要由CSDN通过智能技术生成

题目 

暴力解法 

package com.leetcode;
/**
 * 给定一个长度为 n 的整数数组height,有 n 条垂线,第 i 条线的两个端点是(i, 0)和(i, height[i])
 *
 * 找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水
 *
 * 返回容器可以储存的最大水量
 *
 * 说明:你不能倾斜容器
 */
public class Solution {
    public static void main(String[] args) {
        int[] arr  = {1,8,6,2,5,4,8,3,7};
        int result = maxArea(arr);
        System.out.println(result);
    }

    /**
     * 暴力解法,双for循环,最终会超出时间限制
     * @param height
     * @return
     */
    public static int maxArea(int[] height) {
        int left = 0;                  // 定位到 头
        int right = height.length-1;   // 定位到 尾
        // ans 为结果,min为两个木板的长度最小值
        int ans = 0;
        int min = 0;

   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馒头爱学Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值