指针 指针的过程:在遍历数组的过程中,定义两个相同方向或者相反方向的指针进行遍历,根据两个指针所在的数据进行处理,从而达到相应的目的。 首尾指针(对撞指针) 对撞指针是指在数组中,将最左侧的索引(0)定义为左指针(left),最右侧的索引(数组长度-1)定义为右指针(right),然后两个指针都 ...
转载 2021-10-10 17:09:00
242阅读
2评论
相信大家已经对指针法很熟悉了,但是指针法并不隶属于某一种数据结构,我们在讲解数组,链表,字符串都用到了指针法,所有有必要针对指针法做一个总结。数组篇在数组:就移除个元素很难么?中,原地移除数组上的元素,我们说到了数组上的元素,不能真正的删除,只能覆盖。一些同学可能会写出如下代码(伪代码):for (int i = 0; i < array.size(); i++) {    if (
原创 2021-03-02 19:53:39
290阅读
给「代码随想录」一个星标吧!❝又是一波总结❞相信大家已经对指针法很熟悉了,但是指针法并不隶属于某一种数据结构,我们在讲解数组,链表,字符串都用到了指针法,所有有必要针对指针法做一个总结。数组篇在数组:就移除个元素很难么?中,原地移除数组上的元素,我们说到了数组上的元素,不能真正的删除,只能覆盖。一些同学可能会写出如下代码(伪代码):for(inti=0;i<array.size();
原创 2020-12-29 15:58:03
600阅读
一、指针法简介  所谓指针,指的是在遍历对象的过程中,不是普通的使用单个指针(索引、游标、指针或可迭代对象皆可)进行访问,而是使用两个相同方向或
原创 10月前
123阅读
三数之和解法链接public List<List<Integer>> fourSum(int[] nums, int target) { List
原创 2022-05-31 07:43:20
173阅读
【LeetCode 03】指针法总结一、适用条件适用条件为:数组问题链表问题数组链表中涉及到元素覆盖、删除
原创 2022-08-02 18:52:50
189阅读
记录leetcode上刷过的算法题,本文对指针进行总结。算法简述1、左右指针1)最长回文子串2)排序数组查找元素第一个和最后一个位置2、快慢指针3、滑动窗口1.)力扣03.无重复字符的最长子串2)暴力实现strStr() 算法简述在处理数组和链表有关的问题时,经常会用到指针的方法,指针技巧主要分为两类,左右指针 和 快慢指针。 而在针对的对象上,指针技巧又可以分为 针对单个元素 的,和针
指针:指的是在遍历对象的过程中,引用两个指针来进行访问(可以是同方向–>快慢指针,也可以是反方向–>左右指针)从而达到相应的目的。1 快慢指针例一:26. 删除有序数组中的重复项 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结
版本一:public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> res = new A
原创 2022-05-31 07:43:11
68阅读
ector<int>& nums, int val) { int slow = 0; for (int fast = 0; fast &l
原创 2022-12-06 05:58:43
122阅读
# 使用指针法反转链表 ## 介绍 在Java编程中,反转链表是一个常见的问题,同时也是面试中经常出现的问题之一。本文将介绍如何使用指针法反转链表。指针法是一种常用的解决链表问题的方法,通过设置两个指针,可以在链表上进行迭代操作。 ## 反转链表的流程 下面是使用指针法反转链表的流程: | 步骤 | 操作 | | --- | --- | | 1 | 初始化三个指针:previous、
原创 8月前
66阅读
算法
原创 2022-12-31 01:38:06
158阅读
【BZOJ4385】[POI2015]Wilcze doły Description 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0。请找到最长的一段连续区间,使得该区间内所有数字之和不超过p。 给定一个长度为n的序列,你有一次机会选中一段连续的长度
转载 2017-05-15 10:22:00
42阅读
2评论
【代码随想录】二刷-指针法
编号:27. 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并「原地」修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,1,
原创 2021-07-09 10:07:16
541阅读
遵循后进先出原则的有序集合。新添加的元素或待删除的元素都保存在的同一端,称为顶,另一端为底,在中,新元素都靠近顶,旧元素都靠近底 1 class Stack{ 2 constructor(){ 3 this.count = 0 4 this.items = [] 5 } 6 push ...
转载 2021-07-29 16:26:00
197阅读
2评论
1. stack() 后进先出,不支持迭代器,有push()方法,pop()剔除最顶元素,top()返回最顶端的元素#include#i
转载 2013-09-02 19:09:00
160阅读
使用指针模拟简要思路使用指针模拟元素的 出 操作括号的匹配方法使用的方法相同动画复杂度分析时间复杂度 O(N):只需要遍历一次字符串空间复杂度 O(N):因为 java 无法直接使用下标操作字符串,需要将字符串转换为数组(C++ 可实现 O(1) 空间)代码实现class Solution { public boolean isValid(String
原创 10月前
47阅读
【BZOJ2282】[Sdoi2011]消防 Description 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000)。 这个国家的人对火焰有超越宇宙的热情,所以这个国家最兴旺的行业是消防业。由于政府对国民的热情忍无可忍(大量的消
转载 2017-09-24 15:15:00
30阅读
2评论
11. 盛最多水的容器 LeetCode-11 题目描述 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们 x 轴共同构成的容器可以容纳 ...
转载 2021-10-03 09:56:00
76阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5