首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
算法
订阅
Renkosky
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
1亿个数找到1000个最大值 JavaScript利用堆排序实现 topN topK问题
所以我们需要进行堆调整,来使其变成小顶堆。 堆调整的过程其实就是依照小顶堆的特点(堆顶比左右孩子小), 如果堆顶大于左右孩子就将其与对应孩子交换,交换后左右孩子再和它的左右孩子进行比较。一直进行到不比左右 孩子大为止。
手写算法并记住它:归并排序
本系列文章就尝试解决这个问题。 研读那些排序算法,细品它们的名字,其实都很贴切。 比如归并排序,“归并”二字就是“递归”加“合并”。它是典型的分而治之算法。 上图中,先把数组一分为二,然后递归地排序好每部分,最后合并。 解决办法很容易想到,两权相较取其轻。 如上图所示,每次比较…
前端也来点算法(TS版) | 1 - LRU Cache
这是 前端也来点算法 系列的第一篇文章,项目中的代码打算全部用 TS 编写。 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存、数据库缓存、浏览器缓存等等。 缓存的大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应…
前端开发想了解机器学习?用一台Mac就可以
可能有些同学学习机器学习的时候比较迷茫,不知道该怎么上手,看了很多经典书籍介绍的各种算法,但还是不知道怎么用它来解决问题,就算知道了,又发现需要准备环境、准备训练和部署的机器,啊,好麻烦。 下面的 Demo, 最终的效果是给定一张图片,可以预测图片的类别。比如我们训练模型用的样…
「前端进阶」数组乱序
数组乱序指的是:将数组元素的排列顺序随机打乱。 将一个数组进行乱序处理,是一个非常简单但是非常常用的需求。 比如,“猜你喜欢”、“点击换一批”、“中奖方案”等等,都可能应用到这样的处理。 微软曾在browserchoice.eu上做过一个关于不同浏览器使用情况的调查,微软会在页…
看动画轻松理解「 堆 」
本文通过堆的实现、最小堆(最大堆)、堆的时间复杂度、优先队列的实现、堆排序来介绍「 堆 」。 堆的一个经典的实现是完全二叉树(complete binary tree),这样实现的堆称为二叉堆(binary heap)。 这里来说明一下满二叉树的概念与完全二叉树的概念。 满二叉…
漫画:什么是动态规划?
有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。 比如,每次走1级台阶,一共走10步,这是其中一种走法。我们可以简写成 1,1,1,1,1,1,1,1,1,1。 再比如,每次走2级台阶,一共走5步,这是另一种走法。我…
LeetCode 算法题刷题心得(JavaScript)
花了十几天,把《算法》看了一遍。然后重新 AC 了一遍 LeetCode 的题并记录下心得。
优雅的 JavaScript 排序算法(ES6)
本文中常使用 swap 函数,在这里提前列出来,以下就省略了。 通过依次比较、交换相邻的元素大小(按照由小到大的顺序,如果符合这个顺序就不用交换)。 1 次这样的循环可以得到一个最大值,n - 1 次这样的循环可以排序完毕。 设置一标志性变量 pos,用于记录每趟排序中最后一次…
一文搞懂动态规划
动态规划(Dynamic programming,简称DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 其实最主要的原因就是动态规划非常适合面试,因为动态规划没办法「背」。 我们很多求职者其实是通过背题来面试的,而之前这个做法屡试不爽,什么翻转二叉树、翻…