双指针
Giotto_Ven
交大控制科学与工程研究生
展开
-
Python3-[42]面试题52.两个链表的第一个公共节点
面试题52.两个链表的第一个公共节点题目解题思路解法1:hash mapcode1:hash map解法2:双指针code2: bi-pointer 题目 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 P.S.题目来源于leetcode 解题思路 解法1:hash map 使用一个集合存储A的所有节点,再判断B的节点是否再lookUp中,若在则说明是相交的节点,否则查询完毕不存在相交点 code1:hash map # Definition for singl原创 2020-08-27 23:22:34 · 184 阅读 · 0 评论 -
满足...的最长/短子数组的长度(滑动窗口法)
满足...的最长/短子数组的长度题目解题思路求解:满足不含重复字符的最长子串的长度 题目 给定一个字符串,求满足…的最长/短子数组的长度。其中...部分可以是不含重复字符或含重复字符等。 解题思路 对于这种求满足一定条件的最长/短子数组长度的题目,可以使用滑动窗口法+set进行处理。 求解:满足不含重复字符的最长子串的长度 特判:若字符串的长度小于2,返回字符串 初始化: vis = set():记录重复字符 maxlen = 0:满足不含重复字符的最长子串的长度 curlen=0:滑动窗口当前的不含重原创 2020-08-27 22:23:48 · 822 阅读 · 0 评论 -
Python3-[24]面试题24.翻转链表(链表)A
面试题24.反转链表题目解题思路1.借助辅助栈+新链表code1:辅助栈2.双指针+辅助变量code2 题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 比如: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL P.S.题目来源于leetcode 解题思路 1.借助辅助栈+新链表 先用栈保存原链表的值。 新链表的值取自栈中。 code1:辅助栈 ### 辅助栈+新链表 #原创 2020-08-25 18:36:24 · 168 阅读 · 0 评论 -
Python3-[21]调整数组顺序使奇数位于偶数前面(双指针)
调整数组顺序使奇数位于偶数前面(双指针)题目解题思路代码 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 解题思路 简单思路:使用O(n)的空间,扫描1遍得到顺序的奇数,再扫描一遍得到顺序的奇数,再两个数组拼接。但这样要使用2次遍历,使用O(n)的空间。另外一种思路就是使用双指针,former从左到右扫描,latter从右向左扫描,当左指针遇到偶数,右指针遇到奇数时,数值交换直到左右指针相交。 代码 class Solution:原创 2020-08-25 00:21:25 · 385 阅读 · 0 评论