【力扣二刷思路】DAY1

3. 无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长

子串的长度。

示例 1:

输入: s = "abcabcbb"

输出: 3

解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: s = "bbbbb"

输出: 1

解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: s = "pwwkew"

输出: 3

解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

思路

这道题是找连续的无重复最长子串,要采用滑动窗口的思路,将给定字符串长度记录,同时初始化窗口的左右指针先指向第一个元素。通过循环左右指针内部空间判断是否有重复元素,若没有则将当前窗口长度和ans值进行比较,并保存较大值存入ans;若有重复元素则将当前重复元素的下标修改为后一个重复元素的下标。最终返回ans。

题解

【力扣刷题练习】3. 无重复字符的最长子串

206. 反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

思路

经典算法思路,先初始化两个指针p,q分别指向头结点和空,

进入循环体先初始化一个临时指针t去指向p的下一个结点,

然后令这个结点指向当前的q,其实就是断开p->next和p->next->next的联系,

再将q指针移动到p,在循环内q指针始终指向新链表的首部,

最后p指针移动到临时指针t,本轮循环结束

整体循环结束后返回q,即首元素

题解

【力扣刷题练习】206. 反转链表

相关推荐
凯子坚持 c6 分钟前
动态规划专题:详解二维费用背包问题——以“一和零”与“盈利计划”为例
算法·动态规划
黑色的山岗在沉睡15 分钟前
P1948 [USACO08JAN] Telephone Lines S
数据结构·c++·算法·图论
快去睡觉~1 小时前
力扣301:删除无效的括号
数据结构·算法·leetcode
技术炼丹人2 小时前
从RNN为什么长依赖遗忘到注意力机制的解决方案以及并行
人工智能·python·算法
NfN-sh3 小时前
计数组合学7.12( RSK算法的一些推论)
笔记·学习·算法
ikkkkkkkl3 小时前
LeetCode:15.三数之和&&18.四数之和
c++·算法·leetcode
屁股割了还要学3 小时前
【数据结构入门】链表
c语言·开发语言·数据结构·c++·学习·算法·链表
Mr数据杨3 小时前
数据与模型优化随机森林回归进行天气预测
算法·随机森林·回归
chen1114 小时前
有关人工智能(AI)的搜索算法(CS50)
算法
恣艺4 小时前
LeetCode 135:分糖果
算法·leetcode·职场和发展