
数据结构
YmwWow
前端
展开
-
leetCode:746. 使用最小花费爬楼梯
原文地址:http://www.iming.top/details/7定义一个dp数组, dp[i] 表示踩到 第 i 个台阶要花费的值, 注意,一定要踩到。所有到这个台阶的最小花费: dp[i] =min( dp[i-2] + i, dp[i-1] + i)代码如下:function minCostClimbingStairs(cost: number[]): number { if (cost.length === 2) { return cost[0] ...转载 2021-03-27 19:09:42 · 236 阅读 · 0 评论 -
leetCode: 322. 零钱兑换
给你 k 种面值的硬币,面值分别为 c1, c2 ... ck,每种硬币的数量无限再给一个总金额 amount,问你最少需要几枚硬币凑出这个金额,如果不可能凑出,算法返回 -1 。function coinChange(coins, amount) { const dp = [] for (let i = 0; i <= amount; i++) { dp.push(Infinity) } dp[0] = 0 for (let i转载 2021-03-27 19:02:42 · 199 阅读 · 0 评论 -
js实现插入排序
发现菜鸟教程的那个图片很明了的讲述了图片来源:https://github.com/hustcc/JS-Sorting-Algorithm/blob/master/3.insertionSort.md然后可以写代码了function insert(arr){ var current; for(let i=1;i<arr.length;i++){ ...原创 2019-09-22 19:29:48 · 209 阅读 · 0 评论 -
js实现快速排序
快速排序的大致流程如下,以数组 12,6,23,11,8,7首先选一个基数,然后数组的每个数都和他对比,打的放在他的后面,小的放在他的前面,取第一个数字为基数base=1212 6 23 11 8 7 L R 首先是第一个数作为基数,这个是个坑来的,等等要补,现在丛后往前遍历,7<ba...原创 2019-09-21 22:48:08 · 242 阅读 · 0 评论 -
js实现冒泡排序
冒泡排序就是相邻的两个数进行比较,将大的放在后面,下的放在前面。换句话说就是,前面的数比后面的数大,就交换位置,否则不换位置,图解:以数组 51 56 45 5 86 54 第一趟排序第一次:51和56比较,不交换位置51 56 45 5 86 54 第二次:56和45比较,交换位置51 45 56...原创 2019-09-20 12:42:39 · 213 阅读 · 0 评论 -
数据结构(4) JS实现双向链表
关于思想,上一篇大概有讲到,写法也类似上一篇:数据结构(3) JS实现单链表function doubleList(){ let head = null; let tail = null let Length = 0; function Node(value){ this.value = value; this.prev =...原创 2019-05-10 19:33:48 · 286 阅读 · 0 评论 -
数据结构(3) JS实现单链表
链表有单链表和双链表,概念可百度,这里主要是以js的形式实现。以下是我大概实现的思路我们先定义一个类,说明一下这个链表的数据结构所以我们需要定义节点,节点里面有value(我们存储的值)以及next(指向下个一节点)function node(value){ this.value = value; this.next = null; //在没有下一...原创 2019-05-10 12:31:19 · 223 阅读 · 0 评论 -
数据结构(2) JS实现顺序表的操作
线性表的定义:线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素,因为数组也是通过线性表存储的,所以这里用数组来写let List = [ { message:'第一个数据元素' }, { message:'第二个数据元素' }, { message:'第三个数据元素' },...原创 2019-05-07 10:53:52 · 437 阅读 · 0 评论 -
数据结构(1) 时间复杂度
引言:时间复杂度是判断一个程序算法是否可行的方法,在多个同一个问题的算法中,可以通过时间复杂度来挑选优秀的算法1、需要理解要点:问题的规模和语句频度,数量级O()问题的规模:问题的规模指的是算法求解问题输入量的多少,可以用n表示语句频度:一条语句重复执行的次数在数据结构中,把一个算法的时间复杂度用数量级'O()'来表示,它不是一个确定值,只是一个数量级,例如1,n,n^2等2....原创 2019-05-07 00:09:26 · 1205 阅读 · 0 评论