
数据结构和算法
文章平均质量分 82
从数据结构和算法的基本框架开始,建立有关数据结构和算法有关的所有知识框架
肇秋贰拾捌
吟游诗人
展开
-
动态规划例题
动态规划(1)原创 2022-10-18 10:18:40 · 267 阅读 · 1 评论 -
算法技巧(1)————滑动窗口
🎆滑动窗口思想🎇算法简介定义:滑动窗口本质上就是基于双指针的一种算法思想,双指针之间的距离形成了一个窗口。一般窗口有两种类型,窗口是固定的或者窗口是动态变化的。左右两端两个指针在同一方向,向前进行滑动。🎇适用范围🎆例题1.无重复字符的最长字串🎆例题2.最小覆盖字串✨总结...原创 2022-05-08 11:47:25 · 912 阅读 · 1 评论 -
树(1)————简单了解二叉树
🎇树储存结构通过前面线性表的学习,现在我们来接触一种新的数据结构。树结构是一种倒立的树,作为一种非线性存储结构,它存储的是具有“一对多”关系的数据元素的集合。🎆了解树的概念树是 n(n>=0)个结点的有限集,当n = 0时,就被称为空树。很明显,通过分析,我们也发现几个结论。1.树的根结点没有前驱。2.每个结点有且只有一个前驱。3.每个结点可以有零个或很多个后继。🎆了解树的术语树和子树:以根结点为根的树为全树,以其他结点作为根结点的树为子树结点的度:表示当前结点原创 2022-04-10 17:12:43 · 1088 阅读 · 1 评论 -
线性表(2)————队列的简单介绍
🎆什么是队列?队列类似于前面学到的栈,也是一种受到限制的线性表。它只能在表的前端进行删除操作,在表的末端进行添加操作,因而它的数据输出被称为"先进先出"原则。更为简洁的理解的话,队列就是大家排队购买东西的这么一个过程。排队在前面的人先结账离去,后面的人后结账。与栈类似,队列的实现同样有两种方式,通过链表和队列来进行储存。下面我们来依次介绍这两种队列的代码🎇 数组实现数组实现队列,首先我们需要申请一个足够大的空间去创建数组,同时我们还需要定义两个指针,对队列的队头和队尾进行标记。#def原创 2022-03-19 12:17:36 · 413 阅读 · 0 评论 -
线性表(1)——栈的初步认识
简单了解栈的知识原创 2021-12-12 11:59:36 · 804 阅读 · 1 评论 -
基本算法思想(1)利用分治算法处一隅而观全局(C)
善用算法是培养程序设计逻辑很重要的步骤,许多实际的问题都可用多个可行的算法来解决,本章重点向大家介绍了分治法在解决问题上的重大作用。文章目录????分治法???? 了解时间复杂度✨ 分治法正在磨刀——二分查找✨分治法向你重拳出击——归并排序✨分治法对你进行了降维打击——汉诺塔问题????写在结尾????分治法定义:分治法也被称为分而治之法,是一种很重要的算法,我们可以利用分治法来逐一拆解复杂的问题,核心思想是将一个难以解决的大问题依照相同的概念分割成两个或更多的子问题,以便各个击破。应用:分治法原创 2021-11-13 17:21:08 · 1525 阅读 · 3 评论 -
基本算法思想(2)了解贪心算法
在算法的大家庭中,贪心算法是相对比较容易理解的算法,它只保证局部最优,进而达到全局最优。但其苛刻的使用条件让我们只闻其声不见其人,接下来让我们通过这篇文章更加深刻的了解贪心算法。文章目录????贪心法????优与劣????贪心算法的应用范围✨贪心法教你数钱——钱币找零问题✨贪心法-——脑子正常人玩不出来的跳跃游戏(LeetCode55)????写在结尾????贪心法定义:贪心法又被称为贪婪算法,从某一点开始,就是在每一个解决问题步骤中使用贪心原则,采取当前状态下最有利或最优化的选择,不断改进该解答原创 2021-11-20 18:32:46 · 449 阅读 · 2 评论 -
基本算法思想(3)动态规划算法(c)
动态规划什么是动态规划动态规划和分治法的区别初识DP算法——最长回文子串初识DP算法——最大子序和????写在结尾什么是动态规划????定义:动态规划(Dynamic programming)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。这类方法类似于之前讲过的分治法,用于研究多阶段决策过程的优化过程与求得一个问题的最佳解。而动态规划解决问题的本身也是运用了最优化,让每个子问题的解都达到最优。而对于重复计算的子问题,动态规划不会再重新做一遍计算原创 2021-11-27 19:39:37 · 358 阅读 · 0 评论