![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法技术整理
文章平均质量分 99
有关算法整理
李一恩
Android Developer|习惯撸码前泡一杯生椰拿铁
展开
-
面试必考排序算法最详细介绍,包含动画演示、大厂真题(每天一遍,面试必过)
不知道大家有没有发现,排序算法的考核在校招笔试&面试中已经是必考题。将基本排序算法的代码以及原理背熟是非常有必要的。原创 2022-03-16 13:19:39 · 1660 阅读 · 1 评论 -
第七章 哈希表与字符串
文章目录哈希表与字符串哈希表基础知识HashMap 基本使用leetcoe例1:最长回文串(409)例2:词语模式(290)例3:同字符词语分组(49)例4:无重复字符的最长子串(3)例5:重复的DNA序列(187)例6:最小窗口子串(76)剑指offer哈希表与字符串哈希表基础知识哈希表(Hash table,也叫散列表),是根据关键字(key)直接进行访问的数据结构,它通过把关键值映射到...原创 2019-08-23 13:16:50 · 2432 阅读 · 1 评论 -
第二章 栈、队列、堆
文章目录栈、队列、堆基础知识(1)Stack(栈)(2)Queue(队列)(3)Heap(堆)(4)Deque(双端队列)leetcode例1 使用队列实现栈(225)例2 使用栈实现队列例3 包含min函数的栈例4 合法的出栈队列例5 简单的计算器例6 数组中第K大的数例7 寻找中位数剑指offer栈、队列、堆基础知识(1)Stack(栈)方法功能Stack stac...原创 2019-09-05 08:52:09 · 1066 阅读 · 0 评论 -
滑动窗口算法通用思想
本文详解「滑动窗口」这种高级双指针技巧的算法框架,带你秒杀几道难度较大的子字符串匹配问题:最小覆盖子串找到字符串中所有字母异位词无重复字符的最长子串最后抽象出一个简单的滑动窗口算法框架。LeetCode 上至少有 9 道题目可以用此方法高效解决。但是有几道是 VIP 题目,有几道题目虽不难但太复杂,所以本文只选择点赞最高,较为经典的,最能够讲明白的三道题来讲解。第一题为了让读者掌握算法模...转载 2019-08-26 13:06:36 · 1526 阅读 · 0 评论 -
第九章 动态规划
文章目录动态规划模板问题线性模型区间模型背包模型leetcode剑指offer动态规划(1)含义动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程最优化的数学方法。它基于最优化原理,利用各阶段之间的关系,逐个求解,最终求得全局最优解。在设计动态规划算法时,需要确认原问题与子问题、动态规划状态、边界状态结值、状态转移方程等关键要素。简单来说,动态规划是通过把原...原创 2019-07-11 16:56:01 · 857 阅读 · 0 评论 -
第八章 搜索
文章目录搜索深度优先搜索和宽度优先搜索leetcode例1:岛屿数量(200)例2:词语阶梯(127)例3:词语阶梯2例4:火柴棍摆正方形例5:收集雨水2搜索深度优先搜索和宽度优先搜索DFS基本算法(1)算法思想利用DFS遍历图 graph,从任意结点 start 出发通过栈存储中间结点,每次弹出一个结点,并遍历该结点的邻接结点,若该结点未访问,则加入遍历结果列表。(2)程序代码...原创 2019-08-27 14:21:03 · 405 阅读 · 0 评论 -
第五章 二叉树与图
文章目录二叉树与图leetcoe例1:路径之和(113)例2:最近的公共祖先(236)例3:二叉树转链表(114)例4:侧面观察二叉树(199)例5:课程安排(有向图判断环)(207)剑指offer二叉树与图简介树是n(n>=0)个节点的有限集,且这些节点满足如下关系:有且仅有一个结点没有父结点,这些结点称为树的根。除根外,其余每个结点都有且近有一个父结点。树中的每个结点都构成...原创 2019-07-18 10:39:57 · 975 阅读 · 0 评论 -
算法总结 & 归纳
文章目录算法总结第一章 链表链表求环复杂链表的复制第四章 递归、回溯与分治(一)递归Fibonacci数列矩形覆盖(二)回溯全排列求子集N皇后问题机器人运动范围(三)分治归并排序快速排序求数组中的逆序对第六章 二分查找与二叉排序树旋转数组的最小值判断数组是否为二叉搜索树后续遍历序列求二叉搜索树中第k小的节点算法总结第一章 链表数据结构 public class ListNode { ...原创 2020-04-11 21:34:03 · 4070 阅读 · 3 评论 -
第六章 二分查找与二叉排序树
文章目录二分查找与二叉排序树二分查找基础知识 && 二叉查找(排序)树基础知识leetCode例1:插入位置例2:区间查找例3:旋转数组查找例4:二叉查找树编码与解码例5:逆序数剑指offer二分查找与二叉排序树二分查找基础知识 && 二叉查找(排序)树基础知识(1)二分查找二分查找又称折半查找,首先假设表中元素是按升序排列,将表中间位置的关键字与查找关键字...原创 2019-08-31 21:31:05 · 1358 阅读 · 0 评论 -
第十一章 其他
文章目录leetcode剑指offer例1:二维数组的查找leetcode剑指offer例1:二维数组的查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。算法思路矩阵是有序的,从左下角开始遍历。向上数字递减,向右数字递增,因此从左下...原创 2019-09-09 13:03:38 · 599 阅读 · 0 评论 -
第一章 链表
文章目录链表链表基础leetcode例1:链表逆序(206)例2:链表逆序2例3:链表求交点例4:链表求环例5:复杂链表的复制例6:2个排序链表归并例7:K个排序链表归并剑指offer链表链表基础class ListNode{ int val; //存储元素的数据域 ListNode next; //存储下一个结点地址的指针域};leetcode例1:链表逆序(206)题目描述...原创 2019-09-03 15:42:05 · 1754 阅读 · 1 评论 -
第四章 递归、回溯与分治
文章目录一、递归函数剑指Offer例1:Fibonacci数列例2:跳台阶例3:变态跳台阶例4:矩形覆盖一、递归函数(1)含义函数调用自身(2)基本格式递归一定包括两部分:(1)递归关系(2)递归出口递归代码先写递归出口,再写递归关系。(3)理解递归调用的本质便是入、出栈的过程(可以通过画系统栈分析递归数据的变化)可利用高等数学中的递归函数求解,可参考如下模板:递归关系:f(...原创 2019-10-25 10:01:59 · 1052 阅读 · 0 评论 -
第三章 贪心算法
文章目录贪心算法leetcode例1:分糖果例2:摇摆排序例3:移除K个数字例4a:跳跃游戏例4b:跳跃游戏2例5:射击气球例6:最优加油方法贪心算法(1)含义所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题...原创 2019-07-04 15:52:30 · 1456 阅读 · 0 评论