
数据结构与算法
文章平均质量分 77
lightupworld
这个作者很懒,什么都没留下…
展开
-
【LeetCode每日一题】242. 有效的字母异位词
【LeetCode每日一题】242. 有效的字母异位词一、题目二、题解方法一:排序方法二:哈希表一、题目原题地址:242. 有效的字母异位词二、题解方法一:排序1.思路及算法t 是 s 的异位词等价于「两个字符串排序后相等」。因此我们可以对字符串 s 和 t 分别排序,看排序后的字符串是否相等即可判断。此外,如果 s 和t 的长度不同,t必然不是 s 的异位词。2.代码/** * @author : lightupworld * @description: leetcode-c原创 2021-05-24 20:04:18 · 174 阅读 · 0 评论 -
二叉树遍历系列总结+递归/迭代的统一写法
二叉树遍历系列总结+递归/迭代的统一写法一、题目二、分析:DFS/BFS 与树的遍历三、递归的写法四、迭代写法1. 不统一版本的迭代写法2. 统一版本写法本文提供LeetCode 二叉树 前中序层 四种遍历方式的 递归 和 迭代 统一写法递归写法很简单,在面试中不足以获得面试官的青睐,应该重点掌握迭代写法一、题目144. 二叉树的前序遍历94 . 二叉树的中序遍历145. 二叉树的后序遍历二、分析:DFS/BFS 与树的遍历有两种通用的遍历树的策略:深度优先搜索(DFS)在原创 2020-07-20 16:53:13 · 1128 阅读 · 0 评论 -
什么是动态规划(Dynamic Programming)?动态规划的意义是什么?(2)
什么是动态规划(Dynamic Programming)?动态规划的意义是什么? 第二篇注:本文源自知乎两篇文章,第一篇注重基础原理讲解 第二篇注重解题思路分析。仅用于个人学习,侵权删。第二篇作者:苗华东连接:阅读原文来源:知乎本文清楚的讲解了什么是动态规划,同时也能给一种如何分析、求解动态规划的思考方式。...转载 2020-07-15 10:26:13 · 274 阅读 · 0 评论 -
什么是动态规划(Dynamic Programming)?动态规划的意义是什么?(1)
什么是动态规划(Dynamic Programming)?动态规划的意义是什么? 第一篇0. intro1. 从一个生活问题谈起2. 几个简单的概念3. 对DP原理的一点讨论5 例题最长上升子序列注:本文源自知乎两篇文章,第一篇注重基础原理讲解 第二篇注重解题思路分析。仅用于个人学习,侵权删。第一篇作者:阮行止链接:点击阅读原文来源:知乎0. intro很有意思的问题。以往见过许多教材,对动态规划(DP)的引入属于“奉天承运,皇帝诏曰”式:不给出一点引入,见面即拿出一大堆公式吓人;学生则死啃转载 2020-07-15 10:16:12 · 655 阅读 · 1 评论 -
动态规划_图文详解_Java代码_leetcode刷题模板
动态规划_图文详解_Java代码_leetcode刷题模板一、参考连接二、动态规划解题套路框架(一)、斐波那契数列1、暴力递归2、带备忘录的递归解法3、dp 数组的迭代解法(二)、凑零钱问题1、暴力递归2、带备忘录的递归3、dp 数组的迭代解法(三)、最后总结四、动态规划答疑篇(一)、最优子结构详解(二)、dp 数组的遍历方向一、参考连接知乎:什么是动态规划(Dynamic Programming)?动态规划的意义是什么?知乎:如何理解动态规划labuladong的算法小抄:动态规划解题套路框架原创 2020-07-10 16:08:40 · 856 阅读 · 0 评论 -
深度优先搜索DFS_图文详解_Java代码_leetcode刷题模板
一、参考链接-注 本文仅用于个人学习,侵权删。1、基础讲解搜索思想——DFS & BFS(基础基础篇)数据结构:图的遍历–深度优先、广度优先2、套路模板深度优先搜索模板回溯算法解题套路框架二、图文讲解回溯算法解题套路框架DFS 算法就是回溯算法 ,废话不多说,直接上回溯算法框架。解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题:1、路径:也就是已经做出的选择。2、选择列表:也就是你当前可以做的选择。3、结束条件:也就是到达决策树原创 2020-07-07 18:28:01 · 950 阅读 · 0 评论 -
约瑟夫环+图文讲解+剑指offer62题
约瑟夫环+图文讲解+剑指offer62一 、剑指 Offer 62. 圆圈中最后剩下的数字二、 约瑟夫环三、 最佳代码一 、剑指 Offer 62. 圆圈中最后剩下的数字题目 :0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出:原创 2020-06-29 17:02:04 · 311 阅读 · 0 评论 -
二分查找+细节讲解+java实现
https://www.bookstack.cn/read/fucking-algorithm/%E7%AE%97%E6%B3%95%E6%80%9D%E7%BB%B4%E7%B3%BB%E5%88%97-%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE%E8%AF%A6%E8%A7%A3.md原创 2020-06-22 16:58:49 · 306 阅读 · 0 评论 -
归并排序+图文讲解+视频讲解+java实现
归并排序+图文讲解+视频讲解+java实现1.图文讲解2.视频讲解3.java代码1.图文讲解① https://blog.csdn.net/jianyuerensheng/article/details/51262984② https://blog.csdn.net/MoreWindows/article/details/66781652.视频讲解归并排序算法讲解3.java代码package com.algorithm.learn.sort08;import java.text.C原创 2020-06-19 14:11:52 · 428 阅读 · 0 评论 -
堆排序+图文讲解+视频讲解+java代码实现
堆排序+图文讲解+视频讲解+java代码实现1.图文讲解2.视频讲解3.java代码实现1.图文讲解https://blog.csdn.net/high2011/article/details/784003792.视频讲解堆排序详细讲解1 堆排序详细讲解23.java代码实现 见1申明:本文仅用于个人学习,侵权删。...原创 2020-06-11 15:42:02 · 273 阅读 · 0 评论 -
快速排序+图文讲解+视频讲解+java代码实现+复杂度分析
快速排序+图文讲解+视频讲解+java代码实现1.图文讲解2.视频讲解3.java代码实现4.复杂度分析1. [如何证明快速排序的平均复杂度为O(nlogn)?](https://www.zhihu.com/question/22393997)2. 算法导论快速排序分析)1.图文讲解https://blog.csdn.net/shujuelin/article/details/824238522.视频讲解快速排序算法视频讲解3.java代码实现/** * @program: soword-原创 2020-06-11 12:25:21 · 523 阅读 · 0 评论