7. 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
说明:你不能倾斜容器。

思想:双指针 容量由最短板决定。 两个指针,一前一后

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请
你返回所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。(难点所在)
思路:双指针; 先排序,后找。两层循环:外层控制循环次数及一个值不动,内层循环在这个值后面从两端(因为有序)开始找。

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。
返回这三个数的和。假定每组输入只存在恰好一个解。

思路 ;与上题大致相同, 主要是判断当前三个数 之和与下一个三个数之和 哪一个与target更近。三重循环超过时间。所以双指针
point: 指针k 和 j 的移动

13.给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):


思路: 类似于以上两题;采用排序 后双指针的解法

26. 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 .
* 思想 :由于有序,相同的数字连续出现。 双指针法: 一快一慢,i 定位到与前面元素值相同的下标,j 找到与前面值不同的下标。若j 所指元素与前面元素值不同,则将j所指值 给i下标处,i,j同时后移;若j所指元素与前面元素值相同,i不动,j后移。

27. 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
思想:同上题,双指针法:i,j从0开始,若是val,j+=1,知道找到!=val的值,传递给i所指位置,i,j往后移;若不是,j的值给i,j+=1,i+=1 i,j之间的位置 都是可用的

38. 给定一个正整数 n ,输出外观数列的第 n 项.「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。

思想: 双指针 : 后一项 由前一项决定;由给出的n控制循环次数,后将两个指针 从前一项第一位出发,快指针在小于前一项长度的前提下,往后找与慢指针不同的字符,若相同,继续往后,若不同,则停,计算与慢指针的距离,并转换成字符串+慢指针所指元素,存入变量cur;双指针再继续往后找。 最后快指针到前一项最后位置,所形成的cur即为前一项的后一项。

26. 删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:
- 更改数组
nums,使nums的前k个元素包含唯一元素,并按照它们最初在nums中出现的顺序排列。nums的其余元素与nums的大小不重要。 - 返回
k。
思想 双指针问题: 去掉重复元素,

80. 删除有序数组中的重复项 II 。
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
思想: 双指针问题 。快慢指针初始化放在第三个元素上,若慢指针 与前两位上的元素相同,则快指针往后找,找不同的值给当前慢指针所指元素,慢指针后移一位。
特殊在保留两个重复值

82 删除排序链表中的重复元素 II : 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。


83. 删除排序链表中的重复元素:给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表

思想: 与上题同类型。 代码区别在于 cur指针所在位置不同。

84. 柱状图中最大的矩形。给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。
求在该柱状图中,能够勾勒出来的矩形的最大面积

解法一: 双指针,两层循环可解,但超复杂度

6万+

被折叠的 条评论
为什么被折叠?



