- 博客(3)
- 收藏
- 关注
原创 Leetcode刷题笔记 - 数组(滑动窗口法)
定义cnt为colleections模块下的字典,然后起始位置和终止位置分别为left,right,最大收集数目默认为0,遍历数组更新终止位置,将水果的种类和数目分别作为key、value添加到字典中,记录最大收集数目,但一旦字典长度>2,则更新起始位置left,并更新字典直到某个键的值为0,此时删除该键值对,维护字典长度小于等于2,然后终止位置继续更新,记录最大收集数目。
2023-06-26 17:15:20 147 1
原创 Leetcode刷题笔记 - 数组(双指针法)
两层for循环,第一层先遍历数组,找数组中等于目标值的节点,如果找不到则更新第一层循环指针,如果找到借助第二层循环将i之后的数组元素都向前移位,此时数组长度len需要-= 1,同时i-1判断i原先后面的数组元素与目标值的关系,然后继续第一层循环。定义一个函数,用于重构字符串,该函数下定义一个空栈ret,遍历字符串,如果字符ch不是'#',则压入栈中,如果字符是'#',则弹出栈外,实现退格(通过if判断栈的长度是否为0,避免空栈的弹出造成报错),最后通过join函数返回重构后的字符串。
2023-06-22 13:01:16 119 1
原创 Leetcode刷题笔记 - 数组(二分查找)
数组元素之间,如果数组元素等于目标值,则返回索引位置,如果不等于,则记录数组元素比目标值小的位置存在pos变量中,根据升序数组特性,直到循环结束,此时pos记录的索引位置为<target的最后一个元素的位置,因此返回pos+1即可。二分查找的第一道中等题,最大的难点是数组存在重复元素且需要找两个位置索引,具体的思路是写两个函数,分别查找左右边界,在查找的时候要注意,找到目标值以后还要继续搜索,直到找到满足条件(第一次出现或者最后一次出现)的位置索引。数组最后一个元素,因此插入位置为。注:暴力法运行超时了!
2023-06-21 17:07:19 198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人