• 盛最多的水的容器


    /*
    给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。
    在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。
    找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
    */
    #include<stdio.h>
    #include<malloc.h>
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #include<string.h>
    #include <iostream>
    int getMax(int a,int b){
        if(a>b)
            return a;
        return b;
    }
    int getMin(int a,int b){
        if(a<b)
            return a;
        return b;
    }
    int maxArea(int* height, int heightSize){
        int maxarea=0,left=0,right=heightSize-1;
        while(left<right){
            maxarea=getMax(maxarea,getMin(height[left],height[right])*(right-left));
            if(height[left]<height[right]){
                left++;
            }else{
                right--;
            }
        }
        return maxarea;
    }
    int main()
    {
        int h[]={1,8,6,2,5,4,8,3,7};
        int n =maxArea(h,9);
        printf("%d
    ",n);
        return 0;
    }
  • 相关阅读:
    卓京---java基础2
    GuessFist
    猜拳 GuessFist
    GuessNum
    GuessNumber
    JetBrains全系列软件激活教程激活码以及JetBrains系列软件汉化包
    两个class 之间要空两行
    ImageField 字段的使用
    max_length 属性
    null,blank,default
  • 原文地址:https://www.cnblogs.com/zhaohuan1996/p/12592530.html
Copyright © 2020-2023  润新知