首页 > 其他分享 >双指针

双指针

时间:2022-09-21 23:34:12浏览次数:73  
标签:right int 指针 height times left

1. 滑动窗口

2. 双指针

例题

11. 盛最多水的容器

解法一:双指针

$$ S = H \times W=min(left_height, right_height)\times(right-left) $$

用left和right两个指针从两端向中心收缩,一边收缩一边计算[left,right]之间的矩阵面积,取最大的面积值即是答案。

移动较低的一边,那条边才有可能变高 —— 双指针

int maxArea(vector<int>& height) {
        int left = 0, right = height.size()-1, ans = 0;
         while(left<right){
            // [left, right] 之间的矩形面积,left=right时无法构成矩形
            ans = max(ans,min(height[left], height[right])*(right-left));
            if(height[left]<height[right]) left++;
            else right--;
        }
        return ans;
    }

N数之和


标签:right,int,指针,height,times,left
From: https://www.cnblogs.com/gatzzzze/p/16717601.html

相关文章

  • 指针--求数组的最大最小值
    #include<stdio.h>intminmax(inta[],intlen,int*max,int*min);intmain(){  inta[10]={5,4,3,2,1,6,7,8,9,10};  intmax,min;  minmax(a,si......
  • 指针--变量互换
    #include<stdio.h>intswap(int*p1,int*p2);intmain(){  inta=5;  intb=4;  printf("a=%db=%d\n",a,b);  swap(&a,&b);  printf......
  • C++ 左值引用与一级指针
    将左值引用用于一级指针时,有以下几种用法://方式一:引用一级指针,常规用法inta=5;int*pa=&a;int*&rpa=pa;//方式二:引用指向常量的一级指针,以下几种为等效表......
  • 面试--Go函数返回局部变量的指针是否安全
    点击查看代码packagemainfuncadd(x,yint)*int{ res:=0 res=x+y return&res}funcmain(){ add(1,2)}![image](https://img2022.cnblogs.com/b......
  • C语言第13天,指针与数组
    使用指针访问数组1.使用第一个元素获取数组首地址 #include<stdio.h>intmain(){int arr[5]={111,222,333,444,555};int*p=&arr[0];//从第1个元素获取数组首地址p;......
  • 指针基本注意点
    #include"stdio.h"#include<string.h>intmain(){ chars[10]="verygood",*ps=s; ps+=4; printf("%p\n",ps); /*这里是把字符串"nice"的首地址传递给了ps指针,至......
  • C语言:利用指针交换两个变量的值
    #include<stdio.h>voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}voidfun1(int*a,int*b){intk;k=*a;*a=*b;*b=k;}main(){inta=......
  • C语言:指针 自增 自减 优先级相同,右结合性
    #include<stdio.h>//逗号表达式先计算p=p+2,指向3//*p++:*与++优先级相同,右结合性,(*)p++,//输出时先用后加,所以表达式值为3(*p=4)//p=p+2=6//*++p:优先级相同,右......
  • C语言:指针变量的值变化,则对应新的变量,原变量的值不变
    #include<stdio.h>//指针变量的值变化,则对应新的变量,原变量的值不变main(){intm=1,n=2;int*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d"......
  • C++中指针理解
    参考https://www.runoob.com/cplusplus/cpp-pointers.html正文指针的使用就像java中对象的赋值使用一样,如java中:classUser{ publicintage; User(intage){......