首页 > 其他分享 >双指针

双指针

时间:2023-10-02 23:22:05浏览次数:31  
标签:排序 碰撞 数组 目标值 移动 指针

双指针问题要回答几个问题

  1. 要不要将数组排序
  2. 两个指针是有共同的起点还是两个指针一个在左一个在右(也就是所谓的对撞指针)
  3. i什么时候走,j什么时候走,i走不走是否受到j的影响

三数之和

https://leetcode.cn/problems/3sum/?envType=study-plan-v2&envId=top-100-liked

  1. 要排序,因为要根据左右两个指针所在位置的元素之和的大小移动两个指针
  2. 应该碰撞指针,一般有序数组都用碰撞指针
  3. 之和小于目标值移动左指针,之和大于目标值移动右指针

移动0

https://leetcode.cn/problems/move-zeroes/description/?envType=study-plan-v2&envId=top-100-liked

  1. 不要排序,因为排序会改变顺序
  2. 不是有序数组一般不用碰撞指针,况且如果指针一左一右则交换后会将后面的元素移动到前面来
  3. 当快指针没有指向目标值则交换快慢指针所在位置的元素并且移动慢指针,快指针每次都移动

标签:排序,碰撞,数组,目标值,移动,指针
From: https://www.cnblogs.com/Sandals-little/p/17740560.html

相关文章

  • 函数指针与回调函数
    (目录)1.函数指针前面我们学的:整形指针是指向整形的指针字符指针是指向字符的指针数组指针是指向数组的指针所以函数指针就是指向函数的指针假如有一个int类型变量a,要取它的地址就是&a,有一个字符类型变量c,要取它的地址就是&c,那么一个函数的地址是怎样取到的呢。接下来,我......
  • [算法]双指针的种种应用
    本文使用C语言Q:为什么要用双指针?A:因为通过使用双指针可以使算法的时间复杂度降低(或者降低遍历次数),有时也能降低空间复杂度分类根据双指针的用法,可分为前后双指针,头尾双指针,快慢双指针.....前后双指针应用一删除排序数组中的重复项要求:原地删除,并返回新数组的......
  • 【C++】函数重载 ③ ( 为函数指针赋值重载函数 )
    文章目录一、函数指针回顾1、函数指针概念2、函数指针语法3、代码示例-函数指针示例二、为函数指针赋值重载函数1、为函数指针赋值重载函数2、代码示例-为函数指针赋值重载函数博客总结:重载函数:使用相同的函数名,定义不同的函数参数列表;判定标准:只有函数......
  • AssetDatabase.LoadAssetAtPath 获取FBX资源空指针问题
    问题一 LoadAssetAtPath返回空publicclassProcessModel:AssetPostprocessor{privatevoidOnPostprocessModel(GameObjectinput){if(input.name!="Enemy2b")return;//取得导入模型相关信息ModelImporterimporter=ass......
  • 指针
    指针代码//example.gopackagetestimport"fmt"//值传递funcincrease(nint){ n++ fmt.Printf("\nincrease结束时n=%v\n,n的内存地址为%v\n",n,&n)}//引用传递--->指针funcincrease1(n*int){ *n++ fmt.Printf("\nincrease结束时n=%v\n,n的内......
  • 带你深入理解C指针
    前言......
  • C++中悬垂指针(delete后指针)仍然可以访问所指内存的问题
    C++中悬垂指针(delete后指针)仍然可以访问所指内存的问题在指针被delete之后,此时指针被称为空悬指针或者悬垂指针,即指向一块曾经保存数据对象,但现在已经无效的内存的指针。在C++编程中,当我们delete一个指针后,指针所指向的堆地址空间便被释放,指针值变成无效,该内存可以用于之后的内......
  • 【力扣】使用双指针进行原地移除元素
    使用双指针进行原地移除元素题目描述给定一个数组nums和一个值val,需要将数组中所有等于val的元素原地删除,并返回删除后数组的新长度。要求:不使用额外的数组空间只能使用O(1)额外空间数组中超过新长度后面的元素可以忽略示例1:输入:nums=[3,2,2,3],val=3输出......
  • c语言,一维数组指针
    @TOC前言今天我们讲一下一维数组指针。一、一维数组指针的定义:概述:数组指针,就是数组类型的指针。数组里面的每一个元素都是一个地址。可以让数组指针指向一个数组的地址,通过地址遍历数组的各个元素。定义一维数组指针的步骤:inta[5]={4,5,6,7,8};//定义一个数组int(*......
  • 算法学习——同向扫描的双指针
    考虑到,$1\leN\le2\times10^5$,$O(n^2)$的暴力判断无法通过此题,下面给出三种可行的解决方案。1.哈希容易想到的一个思路是:用哈希表记录一下$a_1\sima_n$每个数出现了多少次,然后求出$\Sigma_{i=1}^ncnt_{a_i-c}$即可,$cnt_{a_i}$表示$a_i......