js算法
忽略我的表情
想吃天鹅的蜗牛
展开
-
解释一道动态规划题目的思想
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/coin-change 题目 s给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例1 输入: coins = [1, 2, 5], amount = 11 输出: 3 解释:...原创 2020-02-09 18:56:00 · 285 阅读 · 0 评论 -
递归算法结构总结
function recursion() { // 1.判断状态或者输入是否合规? // 2.判断递归是否结束 // 3.缩小问题规模 // 4.整合结果 }原创 2020-02-01 11:12:09 · 247 阅读 · 0 评论 -
js排序 - 堆排序
堆排序 堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满 足堆积的性质:即父节点的值总是大于其子节点的值,即“大 顶堆”(或反之,称为“小顶堆”)。 工作原理 将待排序的数组构造成一个大顶堆。此时整个数组的最大值就是堆顶的根节点。将它移走,其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值。然后将剩余的 n-1 个元素又重新构造成堆,这样就又能得到次...原创 2020-01-04 22:58:33 · 219 阅读 · 0 评论 -
js排序下篇(归并排序、计数排序、桶排序、基数排序、堆排序「请看后面的第二篇博客」)
归并排序(递归法 - 自上而下) 归并排序(MergeSort)是创建在归并操作上的一种有效的排序算法,是采用分治法的一个典型应用。 归并操作指的是将两个已经排序的序列合并成一个序列的操作。有递归和迭代两种方法。 工作原理 递归法原理如下: 1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列; 2.设定两个指针,最初位置分别为两个已经排序序列的起始位置; 3.比较两个指针所指...原创 2019-12-29 18:12:50 · 311 阅读 · 2 评论 -
js排序上篇(冒泡排序、选择排序、插入排序、希尔排序、快速排序)
冒泡排序 工作原理 重复遍历序列,比较相邻的两个元素,如果这两个元素顺序不正确,则交换。重复以上步骤直到排序完成。 js代码实现 + 效率测试 运算10次,平均耗时1018 ms // 创建 20000 个随机数,数值范围:1 - 100000 let ary = []; for (let i = 0; i < 20000; i++) { ary.push( Math.floor( Ma...原创 2019-12-21 17:27:54 · 188 阅读 · 0 评论 -
算法 - 字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = "2", num2 = "3" 输出: "6" 示例 2: 输入: num1 = "123", num2 = "456" 输出: "56088" 说明: num1 和 num2 的长度小于110。 num1 和 num2 只包含...原创 2019-11-30 16:55:20 · 171 阅读 · 0 评论