![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法笔记
Mx_Man
这个作者很懒,什么都没留下…
展开
-
力扣刷题日记(10)
十三、二进制链表转整数给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例 2:输入:head = [0]输出:0示例 3:输入:head = [1]输出:1示例 ...原创 2019-12-19 11:47:54 · 186 阅读 · 0 评论 -
力扣刷题日记(9)
十一、数字反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。传送门:数字反转...原创 2019-12-18 11:22:44 · 138 阅读 · 0 评论 -
力扣刷题日记(8)
十、罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为...原创 2019-12-17 12:07:05 · 117 阅读 · 0 评论 -
力扣刷题日记(1)
一、递归之二叉树的前序遍历听说力扣刷题很有意思,上去看了看,确实有趣,不要怂就是干,先来一发: 二叉树的前序遍历,递归实现: /** * @param {TreeNode} root * @return {number[]} */var preorderTraversal = function(root) { let values = []; values = t...原创 2019-07-17 19:21:31 · 339 阅读 · 0 评论 -
力扣刷题日记(3)
三、循环队列的实现最近有点懒,哈哈,刷题挺慢的,今天用python3 练练手了,题目如下:设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但...原创 2019-07-26 13:52:26 · 117 阅读 · 0 评论 -
力扣刷题日记(6)
**八、螺旋矩阵**给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出:...原创 2019-08-04 11:45:03 · 160 阅读 · 0 评论 -
力扣刷题日记(4)
四、寻找数组的中心索引原题如下:给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出: 3...原创 2019-07-27 13:30:48 · 86 阅读 · 0 评论 -
力扣刷题日记(5)
六、加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。原题...原创 2019-07-28 11:31:18 · 146 阅读 · 0 评论 -
力扣刷题日记(7)
十、高度检查器学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。请你返回至少有多少个学生没有站在正确位置数量。该人数指的是:能让所有学生以 非递减 高度排列的必要移动人数。示例:输入:[1,1,4,2,1,3]输出:3解释:高度为 4、3 和最后一个 1 的学生,没有站在正确的位置。提示:1 <= heights.length <= 1001 <...原创 2019-08-14 15:01:33 · 177 阅读 · 0 评论 -
力扣刷题日记(2)
一、多米诺骨牌(数组)给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 ac 且 bd,或是 ad 且 bc。在 0 <= i < j < domino...原创 2019-07-24 17:31:47 · 147 阅读 · 0 评论 -
算法笔记之广度优先搜索
算法笔记第六章:1.图 : 由节点和边组成,一个节点可能与众多节点直接相连,这些节点称为邻居。2.广度优先搜索: !解决的问题: X.从节点A到B是否有路径; X.找出从节点A到B的最短路径; !广度优先搜索不仅查找到路径,且找到的就是最短的路径。3.队列:头进尾出(先进先出)的数据结构。4.广度优先搜索算法流程图:5.运行时间:O(V+E)6.树:一种特殊的...原创 2019-05-24 10:34:23 · 264 阅读 · 0 评论 -
算法笔记之散列表
算法笔记第五章:1.散列函数:将输入映射到数字。 X.同一输入应具有一致性。 X.不同的输入应映射不同的数字。2.散列表:也叫字典、关联数组等。 X.防止重复3.例:电话簿,互联网缓存等。4.避免冲突:(较低的填装因子&良好的散列函数) X.让散列函数将所有的键均匀映射到散列表的不同位置。 X.散列表存储越长,性能越不好,所以散列函数很重要。5...原创 2019-05-24 10:03:10 · 80 阅读 · 0 评论 -
算法笔记之狄克斯特拉算法
算法笔记第七章:1.狄克斯特拉算法—>找出加权图中前往X的最短路径;2.加权图:(带权重的图)3.迪克斯特拉算法步骤: x.找出最便宜的节点,即可最短时间内到达的节点; x.更新该节点的邻居的开销; x.重复这个过程,直到对图中的每个节点都这样做了; x.计算最终路径。4.迪克斯特拉算法只适用于有向无环图;5.迪克斯特拉算法不适用于包含负权边的图;(贝尔曼-福德算...原创 2019-05-26 17:28:50 · 252 阅读 · 0 评论 -
算法笔记之贪婪算法
算法笔记第八章:1.贪婪算法:每步都选择局部最优解,最终得到的就是全局最优解。(在特定的调度问题上)2.在有些情况下,完美是优秀的敌人,在只需要找到一个能够大致解决问题的算法时,贪婪算法可用。3.NP完全问题---->近似求解。...原创 2019-05-26 17:48:11 · 373 阅读 · 0 评论 -
算法笔记之动态规划
算法笔记第九章:1.背包问题2.动态规划:功能强大,能够解决子问题并使用这些答案来解决大问题,但仅当每个子问题都是离散的,不依赖于其他子问题时,动态规划才管用。(给定约束条件下,优化某种指标时动态规划很好用)3.最优解有可能导致背包不被装满。...原创 2019-05-26 18:08:46 · 177 阅读 · 0 评论 -
算法笔记之K最近邻算法
算法笔记第十章:1.k最近邻算法:(简称KNN算法) x.特征抽取 x.根据特征绘图 x.毕达哥拉斯公式计算两点之间的距离,得到最近距离的点2.回归: x.用于预测结果。3.挑选合适的特征 x.紧密相关 x.不偏不倚4.机器学习x.OCRx.垃圾邮件过滤器(朴素贝叶斯分类器)x.预测股票市场...原创 2019-05-26 18:29:29 · 120 阅读 · 0 评论 -
算法笔记之概述
算法笔记第十一章:1.树:特殊的图 x.二叉查找树(数据库常用B树) x.红黑树 x.堆 x.伸展树2.反向索引:常用于搜索的散列表3.傅里叶变化:常用于数字信号的处理;4.并行算法: x.并行性需要管理开销; x.负载要均衡。 z.可改善性能和可扩展性5.分布式算法(MapReduce: 映射 map + 归并 reduce)6.布隆过滤器和...原创 2019-05-26 18:57:30 · 71 阅读 · 0 评论 -
算法笔记之选择排序
算法笔记第二章:1.内存的工作原理:类似超市的存储柜,每个抽屉有特定的编号(内存地址)2.数组和链表:x:数组在内存中的存放是相连的;链表的元素可存储在内存的任何地方;x:链表的插入,删除有优势,数组的访问有优势,时间复杂度如下:3.选择排序:每找一个元素便利一次列表,将该元素添加到新的列表当中;如此循环至最后一个;x.时间复杂度为O(n²)。...原创 2019-05-23 09:52:46 · 76 阅读 · 0 评论 -
算法笔记之递归
算法笔记第三章:1.递归函数的两个部分:基线条件(不再调用自己,返回),递归条件:函数调用自己。2.栈:头进头出,只有压入和弹出;3.递归的优缺点:x:优点是方便,且便于理解;x:缺点是要占用大量的内存,每个函数调用都要占用一定的内存。避开缺点的方案:1.转用循环;2.尾递归...原创 2019-05-23 10:09:37 · 128 阅读 · 0 评论 -
算法笔记之快速排序
算法笔记第四章:1.D&C(divide and conquer) 分而治之 快速排序算法 是一种递归式问题解决方法2.D&C 工作原理 :X. 找出简单的基线条件(即递归出口)X.确认如何缩小问题的规模,使其符合基线条件。注意: 编写设计数组的递归函数时,基线条件通常是数组为空或只包含一个元素,陷入困境时可自查。快速排序简述:1.假如数组长度为0或为1,返回...原创 2019-05-23 10:41:03 · 108 阅读 · 0 评论 -
算法笔记之大O表示法
算法笔记第一章:1.算法: 一组完成任务的指令;2.大O表示法讨论运行时间时,一般指的时log2。3.大O表示法:一种表示算法速度的特殊表示法;X:X:大O表示法指出了最糟糕情况下的运行时间X:常见的5种 -->O(logN) 对数时间 -->O(n)线性时间 -->O(n*logN) 快速排序的时间 -->O(N²) 选择排序的...原创 2019-05-21 11:26:41 · 192 阅读 · 0 评论