02 2022 档案
摘要:学习笔记五 反转链表 本题来自:力扣206. 反转链表 题目描述 对于一个如图所示的链表,将其翻转过来。注意,要在原链表身上进行操作,不能新建链表。 方法一:循环 第一种思路是最容易想到的,我们只需要两两交换相邻的节点指向,从头遍历到尾即可。 首先考虑特殊情况,在链表内没有节点时,或者只有一个节点时
阅读全文
摘要:学习笔记六 N数之和 题目分析 本类题可分为两类,一种是利用哈希表直接进行查找,另一种是利用双指针进行双向查找。 哈希表 力扣01.两数之和 力扣454.四数相加 需要利用哈希表时的题目特征: 1,多个数不来自于同一个数组,这样不需要考虑同一数组中重复选择数字的问题。 2,如果数字是来自同一个数组,
阅读全文
摘要:#学习笔记四 KMP算法应用 本题来自:力扣459.重复的子字符串 ##题目描述 给定一个非空的字符串 s ,判断 s 是否能通过它的一个子串重复多次获得。 这时候肯定有同学会问了,连要比较的短串是什么都不知道,怎么用KMP呢? ##编程思路 还是和 KMP算法实现过程一样,我们需要一个 next
阅读全文
摘要:学习笔记三 KMP算法介绍 本题来自:力扣28.实现strStr() ##题目描述 简单来说,题目要求是从一个字符串 haystack 中找到另一个字符串 needle 出现的第一个位置。如果按暴力解法,题目解答很容易想到是 O(m * n) 的时间复杂度。那么,有没有一种解法,它的时间复杂度可以降
阅读全文
摘要:#学习笔记二 螺旋矩阵旋起来 本题来自:力扣59.螺旋矩阵2. 题目解读 螺旋矩阵问题是面试常考问题之一,通过编程来模拟过程可以有效检验出应试者对代码的掌控能力,以及对边界条件的清晰认识。 对于这个问题,切记不要一上来就沉浸于代码中。 事实上,这道题只要理清了思路,每一部分的代码写起来是大同小异的。
阅读全文
摘要:学习笔记一 深入理解二分法 二分法的使用前提 二分法是进行查找最基础的方法。 由于实现方法是使用 left,right 两个指针,每次将搜索区间缩小一半,因此它是一种时间复杂度为 O(logn) 的方法。 在使用二分法时,一定要注意以下几点: 数组应该是分段有序的,这样有利于缩小搜索区间。 如果数组
阅读全文