
数据结构与算法
文章平均质量分 76
黑黑的脚后跟
这个作者很懒,什么都没留下…
展开
-
[剑指offer]十大排序算法
接前文七大搜索算法,这次对排序算法进行总结。1.冒泡排序相邻两元素比较并交换位置,走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。用图片解释比较直观。...原创 2021-09-03 15:07:26 · 140 阅读 · 0 评论 -
[剑指offer]七大查找算法
看到《剑指off》基础知识部分,发现没对常用的查找算法详细讲解,因此从别的地方学习一下,总结在这里。七大查找算法顺序查找基本思想Java实现说明二分查找基本思想Java实现插值查找基本思想Java实现斐波那契查找基本思想Java实现树表查找基本思想Java实现分块查找基本思想Java实现哈希查找基本思想Java实现顺序查找基本思想从前往后遍历,最简单的一种查找算法Java实现public class SequenceSearch { public static int search(in原创 2021-09-02 17:27:15 · 133 阅读 · 0 评论 -
[力扣题解]:234. 回文链表
题目要求请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解题思路寻找回文串要从中间向两侧延伸,判断回文串则要从两端向中间遍历1.双指针判断回文字符串字符串为数组型顺序存储,可快速索引到字符串两端,故采用双指针def isPalindrome(s): left = 0 right =le原创 2021-05-12 16:34:19 · 197 阅读 · 0 评论 -
[力扣题解]:25. K 个一组翻转链表
写在前面本题为前一篇反转部分链表的进阶版,虽然是Hard题,但分析之后发现并没有太大困难。题目要求给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]示例2:输入:head = [1,2,3,4,5], k = 3输出:[3,2,1,4,5]示例 3:输入:hea原创 2021-05-11 14:47:09 · 147 阅读 · 0 评论 -
[力扣题解]:92.反转链表Ⅱ
写在前面前段时间因为一些原因刷题刷的很不规律,且在刷题过程中发现自己之前学的数据结构与算法知识还不够扎实,所以开始学习《labuladong的算法小抄》这本书,并记录自己的刷题过程,以巩固知识。题目要求给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1原创 2021-05-11 14:10:03 · 335 阅读 · 0 评论 -
字符串匹配算法——BF、KMP原理及实现
任务说明给定主字符串S=“字符串匹配算法——BF、KMP原理及实现”,我想知道S内是否包含副字符串T=“匹配算法”,并返回T的第一个元素“匹”在S内的位置。我们通常把主字符串称为目标串,将副字符串称为模式串。本文主要利用BF算法以及KMP算法解决字符串匹配任务。一、BF算法首先,给定 “目标串” 和 “模式串” 如下:1.算法概述BF算法的整体思路就是遍历,是一种穷举法的体现。从目标串S的的第一个字符起与模式串T的第一个字符比较。若相等,则继续对字符进行后续的比较;否则主串从第二个字符起与模原创 2020-12-31 18:56:36 · 854 阅读 · 0 评论