
Algorithm and Data Structure
文章平均质量分 95
常用的数据结构链表、数组、队列、栈、树、图等,算法包括递归、分治法、贪心算法、动态规划等
长路漫漫2021
I confess that I have been blind as a mole, but it is better to learn wisdom late than never to learn it at all.
展开
-
Python数据结构与算法篇(十五)-- 二叉树的遍历:深度优先搜索与广度优先搜索
本篇带你走进二叉树,使用深度优先搜索和广度优先搜索思想进行二叉树的顺序遍历和层序遍历,带你刷遍LeetCode上的二叉树遍历题目。原创 2023-05-24 23:20:23 · 3994 阅读 · 0 评论 -
Python数据结构与算法篇(十四)-- 冒泡排序算法
冒泡排序(Bubble Sort)是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。原创 2022-04-13 23:03:20 · 3955 阅读 · 0 评论 -
Python数据结构与算法篇(十三)-- 位运算与使用技巧
本篇主要学习Python中的二进制运算,通过位运算实现乘除法、交换两数、判断奇偶数、交换符号、求绝对值、二进制逆序、统计二进制中1的个数,最后结合LeetCode常见题目进行练习。原创 2023-03-23 16:04:18 · 1917 阅读 · 28 评论 -
Python数据结构与算法篇(十二)-- 树和二叉树
终于学到了二叉树,LeetCode里面三分之一都是关于二叉树,俗话说打铁还需自身硬,本节学习树的基本概念,二叉树的实现、遍历、转换二叉树等。原创 2023-03-19 22:26:29 · 2204 阅读 · 0 评论 -
Python数据结构与算法篇(十一)-- 链表的应用与常见题型
本篇信息量巨大,首先对比链表和数组,接着解决单链表的反转、删除某一节点、插入数据、查找中间节点、求倒数第k个结点、对称链表、单链表是否有环、两个链表是否相交,最后用LeetCode上的真题来实战删除链表结点、反转链表、合并、排序、环形链表常用技巧。原创 2023-03-14 22:22:28 · 2100 阅读 · 50 评论 -
Python数据结构与算法篇(十)-- 链表的实现
本文主要学习使用Python实现链表,包括链表增加元素、删除元素、扫描、定位、遍历,以及循环单链表和双链表的实现。原创 2023-02-23 22:18:54 · 772 阅读 · 1 评论 -
Python数据结构与算法篇(九)--单调栈与单调队列
本篇主要以LeetCode上题目为例,合适的数据结构可以有效地降低算法的复杂度,本文分析单调栈和单调队列的使用技巧,以及如何在题目中灵活应用。原创 2023-04-18 23:11:45 · 2013 阅读 · 1 评论 -
Python数据结构与算法篇(八)-- 队列的实现与应用
本篇主要介绍Python数据结构篇队列和双端队列的定义与实现,最后用经典的约瑟夫问题和回文词判定来演示队列的应用。原创 2023-01-01 21:35:56 · 1019 阅读 · 1 评论 -
Python数据结构与算法篇(七)-- 栈的实现与应用
本节主要学习栈的抽象数据类型,主要包括出栈、进栈、栈的大小、栈顶元素、栈是否为空,最后实现括号匹配和十进制转换为二进制来理解栈的反转次序、先进后出的特性。原创 2022-09-20 22:07:41 · 1223 阅读 · 0 评论 -
Python数据结构与算法篇(六)-- 哈希表
散列表(hash table),又名‘hash表’,它用的是数组支持按照下标随机访问数据(时间复杂度O(1))的特性,散列表其实就是基于数组结构的一种扩展。散列表这种数据结构虽然支持非常高效的数据插入、删除、查找操作,但是散列表中的数据都是通过散列函数打乱之后无规律存储的。也就说,它无法支持按照某种顺序快速地遍历数据,所以我们常常会将散列表和链表(或者跳表)结合在一起使用。原创 2023-03-26 21:30:00 · 4005 阅读 · 20 评论 -
Python数据结构与算法篇(五)-- 二分查找与二分答案
二分查找是解决很多查找类题目的常用方法,它可以达到O(log n)的时间复杂度。二分查找有很多种变体,使用时需要注意查找条件,判断条件和左右边界的更新方式,三者配合不好就很容易出现死循环或者遗漏区域,本篇中我们将介绍常见的几种查找方式的模板代码和常见的解题技巧,带大家学透二分算法原创 2023-03-29 19:45:40 · 2940 阅读 · 23 评论 -
Python数据结构与算法篇(四)-- 滑动窗口算法
本篇带你走进滑动窗口算法,进一步强化双指针的使用, 滑动窗口算法常用于字符串匹配问题和子数组问题,本篇就总结出来Python的编写模板,从此刷题不心慌!原创 2023-03-24 15:36:30 · 3599 阅读 · 30 评论 -
Python数据结构与算法篇(三)-- 快慢指针与碰撞指针
数组是一种基础数据结构,可以用来处理常见的排序和二分搜索问题,典型的处理技巧包括对双指针、滑动窗口等,数组是数据结构中的基本模块之一。因为字符串是由字符数组形成的,所以二者是相似的。双指针⼜分为中间向两端扩散的双指针、两端向中间收缩的双指针、快慢指针。本篇主要分析双指针在字符串数组中常用解题套路原创 2023-03-09 21:30:00 · 1941 阅读 · 0 评论 -
Python数据结构与算法篇(二)-- 前缀和与差分数组
前缀和主要适用的场景是原始数组不会被修改的情况下,适用于快速、频繁地计算一个索引区间内的元素之和以及频繁查询某个区间的累加;差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减。本节主要学习算法的原理,结合LeetCode题目分析如何使用这些技巧。原创 2023-03-12 19:36:16 · 2277 阅读 · 1 评论 -
Python数据结构与算法篇(一)-- 算法分析基础
近期在学习《数据结构与算法分析Python》,本篇主要介绍算法分析的基础,介绍Python中List和Dic常用操作的时间复杂度,最后用一个变位词的例子比较不同算法的复杂度。原创 2022-09-19 16:25:04 · 1788 阅读 · 0 评论