算法
文章平均质量分 62
lznism666
这个作者很懒,什么都没留下…
展开
-
2021前端算法面试
github地址:https://github.com/GuoLizhi/algorithm,欢迎star~一起学习项目简介本项目主要分为两个部分基础数据结构:会使用Java和TypeScript实现底层的数据结构,并考虑数据结构中每个操作的时间复杂度leetcode算法:算法主要会记录在本仓库的issue中,leetcode的每一个分类我都以标签的形式标记出来,欢迎参考学习算法是一个漫长的过程,没法靠突击,只能一步一步慢慢积累。数据结构数据结构Java版TypeScr.原创 2021-02-23 14:40:06 · 404 阅读 · 0 评论 -
动态规划如何写出状态转移方程
动态规划的难点就在于如何书写状态转义方程,一般来说分为以下几个步骤确定状态,也就是原问题和子问题中变化的量。确定dp函数的含义。比如经典的零钱兑换中,dp(n)就表示,当前的目前金额为n,至少需要dp(n)个硬币凑出该金额确定选择并择优,确定每个状态,可以做出什么选择并改变当前的状态明确base case...原创 2020-08-31 14:12:36 · 1960 阅读 · 0 评论 -
nlogn排序-快速排序
快速排序的基本思想也比较清楚,首先找出一个基准位置,该基准位置可以是数组中的任何一个元素,通常我们指定第一个元素。每一次快速排序我们会将该基准位置上的元素放到最终它应该在的位置。即它左边的所有元素都小于基准元素,它右边的所有元素都大于基准元素。function quickSort(arr) { sort(arr, 0, arr.length - 1); return arr;}function sort(arr, left, right) { if (left >= r原创 2020-08-28 22:06:44 · 339 阅读 · 0 评论 -
nlogn排序-归并排序
归并排序主要运用到了分治算法的思想,算法将对原有数组的排序,逐渐分解为对数组中单个元素的排序,而对于单个元素而言,我们认为其是有序的。然后我们逐渐归并这一个个有序的数组,最终得到一个完全有序的数组function mergeSort(arr) { const temp = new Array(arr.length); _sort(arr, 0, arr.length - 1, temp); return arr;}function _sort(arr, left, right, tem原创 2020-08-26 16:53:40 · 269 阅读 · 0 评论