指针一、介绍指针指的是在遍历对象的过程中,使用两个指针进行相同或相反方向的扫描,从而达到相应的目的。此处的指针并非C语言中的指针,而是索引。指针算法是一个遍历对象的过程,因而其常应用于数组、链表指针算法的最重要的目的是,将较高时间复杂度(O(n^2))降为线性的时间复杂度(O(n)),是一种对暴力搜索算法的优化。二、场景引入问题:给定一个升序排列的数组和一个目标值,从该数组中找出两个元素,
转载 2023-07-12 19:24:25
137阅读
指针C语言中的难点,C++中自然也免不了其身影。以下是我学习中的积累,不足之处望不吝赐教。指针类型:指针Const int* pstr     不能修改被指向的对象,可以使指针指向其他对象   如:const int* pvalue {&value};   *pvalue=6;     //will not compile   pvalue=nullptr;  //ok Int* c
转载 2023-10-02 09:20:51
75阅读
指针思路及其实现指针就是在一个循环里有两个变量同时向前推进,循环结束条件可以是一个或多个(只要不是死循环就可)。一般模型为i(第一个指针,以下同),j(第二个指针,以下同)。第一种模型为一个数组(i从首位开始,j从末尾开始)第二种模型为二个数组(i从第一个数组首位开始,j从第二个数组尾部出发),第三钟为两个数组(i从第一个数组首位开始,j从第二个数组首位开始)指针一般都是两层循环优化而来,特
指针1. 指针基础知识1. 指针简介2. 对撞指针3. 快慢指针4. 分离指针2. 滑动窗口2.1 算法介绍2.2 适用范围:2.3 固定长度窗口2.4 不定长度窗口3. 指针相关题目:2.1 对撞指针167.两数之和||输入有序数组125.验证回文串344.反转字符串15.三数之和2.2 快慢指针80.删除有序数组中的重复项||283.移动零2.3 分离指针88.合并两个有序数组 1
转载 2023-12-01 11:02:24
62阅读
1.双向指针在链表中的应用所谓指针,指的是在遍历对象的过程中,不是使用单个指针进行访问,而是使用两个相同方向或者相反方向的指针进行遍历,从而达到相应的目的。指针的使用可以降低程序的时间复杂度或者空间复杂度,总之是一种有效的解决问题的方案。       (注:这里所说的指针,并不是C/C++中指针的概念,而是指索引,游标或指针,可迭代对象等) 
转载 2023-08-30 19:58:16
85阅读
指针算法及经典例题指针算法介绍模板:指针的经典例子:输出单词经典例题: 最长连续不重复子序列 指针算法介绍指针算法有两类: 1.对撞指针 :两个指针分别指向不同的队列(归并排序) 2.快慢指针 : 两个指针指向一个队列(快排)模板:for(int i =0;i<n;i++){ for(int j =0;j<=i;j++){ if(check(j,i)){ r
## Python指针技巧教程 在现代编程中,指针技术是一种有效的算法策略,广泛应用于处理数组或链表等数据结构的问题。指针可以显著提高算法的效率,降低时间复杂度。本文将带你了解指针的基本原理,通过具体的实例及代码来帮助你掌握这项技巧。 ### 流程概述 在实现指针的过程中,可以按照以下步骤进行: | 步骤 | 描述 |
原创 2024-08-11 04:18:34
55阅读
明年就是找工作了,又要开始刷题了,把之前做过的题目再梳理整理一遍,但愿明年不要那么拉跨,祈祷明年能找到工作,千万不能毕业就失业。分类别解析leetcode上的一些相关的例题路,代码采用C++与python实现。指针主要分为如下的三类题目: 对撞指针, 快慢指针, 其他指针.对撞指针对撞指针的问题,一般是数组首尾各有一个指针,这俩指针往中间移动过,解决相对应的问题167 有序数组的 Two Su
&values, int left, int right, int target) { while(left<=ri ...
转载 2021-08-04 18:48:00
237阅读
2评论
指针技巧再分为两类,一类是**「快慢指针」,一类是「左右指针」**。前者解决主要解决链表中的问题,比如典型的判定链表中是否包含环;后者主要解决数组(或者字符串)中的问题,比如二分查找。一、快慢指针的常见算法快慢指针一般都初始化指向链表的头结点 head,前进时快指针 fast 在前,慢指针 slow 在后,巧妙解决一些链表中的问题。1、判定链表中是否含有环这属于链表最基本的操作了,学习数据结构应
转载 2023-12-07 11:11:12
40阅读
指针问题指针在日常生活中很常见,leetcode中也有许多的题目与之相关。接下来是几个指针的案例。需要注意的一个点:如果想知道一道题目是否能使用指针,你就需要去判断,该指针所指向的值,两个是否能进行合理的判断(三数之和中,两个指针所指向的值经过计算与0的比对结果控制指针的走向,而雨水问题中,两个指针所指向的柱子高度较小值于指针值的差的乘积于当前面积的比对结果控制指针走向)下面就是指针的一
目录141. 环形链表(easy)题目V1(快慢指针)V2(哈希表)283. 移动零(easy)题目V1V227. 移除元素(easy)题目V1V2V326. 删除排序数组中的重复项(easy)题目V1V280. 删除排序数组中的重复项 II(medium)题目V1 141. 环形链表(easy)题目给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达
第二章 指针2.1 介绍算法思想 指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索。若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是排好序的。2.2 Two Sum问题167. 两数之和 II -
# Python指针模板:高效解决问题的利器 指针是算法中一种常见且高效的技术,尤其在处理数组和链表等数据结构时,能够显著降低时间复杂度。本文将介绍指针的基本概念及其应用,并结合代码示例和状态图,以帮助读者更好地理解这一技巧。 ## 什么是指针 指针技术通常使用两个指针在问题的解空间中进行搜索。这两个指针可能朝同一方向移动,或一个指向左侧,一个指向右侧。指针常用于解决以下几类问题
原创 2024-10-24 06:07:41
27阅读
目录核心思想一、快慢指针二、对撞指针三、滑动窗口核心思想1.两个指针,其中一个
原创 2022-09-08 10:14:45
253阅读
根据: github优秀创作者.算法思想1.指针法 2.排序 3.贪心思想 4.二分查找 5.分冶 6.搜索 7.动态规划 8.数学1. 指针法:指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。1.1 有序数组的 Two Sum题目描述:在有序数组中找出两个数,使它们的和为 target。输入: numbers={2, 7, 11, 15}, target=9 输出: [1,
大家好,今后我会在博客分享自己一些算法解题思路和一些有趣的推理题,欢迎有兴趣的朋友们一起来学习呀指针是一种思想或一种技巧并不是特别具体的算法。 具体就是用两个变量动态存储两个结点,来方便我们进行一些操作。通常用在线性的数据结构中。解决指针问题四种常用思想:1、普通指针(two sum),一般两个for循环,外层i和内层j可以认为是普通的指针; 2、左右指针(二分搜索):需要两个指针,一个指
转载 2023-07-22 16:26:22
240阅读
// Class01.cpp : Defines the entry point for the console application.///**本例用来用一个函数在堆区分配一个内存空间*并在主函数中用一个指针来指向*注意必须是传地址,否则一旦函数结束则将被释放*/#include "stdafx.h"#include #include //#defi
原创 2021-07-27 15:36:19
1001阅读
翻了大半天的墙,论坛找一圈,勉勉强强对这个pointer以及pointer to pointer有了一点点的了解,反正我就是这么理解的,权当是对的了 哎,组里都不在,好无聊啊,想喝酒! pointer的用途 其实就是你给一个变量一个数,一串字符巴拉巴拉的,存这个变量里了,你用的时候是直接调用的,对吧 ...
转载 2021-07-12 21:53:00
773阅读
2评论
一、算法简介指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索。若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是排好序的。二、指针小知识对于C++ 语言,指针还可以玩出很多新的花样。一些常见的关于指针
  • 1
  • 2
  • 3
  • 4
  • 5