复杂度分析:如何分析、统计算法的执行效率和资源消耗
我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。
2023-03-21
基于React开发扫雷游戏
扫雷作为一个祖传游戏,深受我们无聊人士的喜爱。 无聊的我就用React写了一个web版本的 UI是参照Ubuntu的扫雷游戏的UI做的,因为日常是Ubuntu为主。 在线试玩链接 代码仓库链接 实现中用到了两个算法: Fisher-Yates Shuffle 用来对雷进行随机化分布处理 DFS 深度优先搜索 当点击到空白时要DFS处理周围节点 前端真的也要...
基于Vue开发扫雷游戏
扫雷作为一个祖传游戏,深受我们无聊人士的喜爱。 无聊的我就用Vue写了一个web版本的 UI是参照Ubuntu的扫雷游戏的UI做的,因为日常是Ubuntu为主。 在线试玩链接 代码仓库链接 实现中用到了两个算法: Fisher-Yates Shuffle 用来对雷进行随机化分布处理 DFS 深度优先搜索 当点击到空白时要DFS处理周围节点 前端真的也要算...
双“11”搞促销?本文教你用贪心算法来盘他!
这几年商家为了刺激消费是变着花样的推出各种各样的活动,以某多多为首的运营式电商更是让我们看到了营销的无限“潜力”。这不,最近刚赶上双 11,小区便利店的老王头也推出了一项「空酒瓶子换酒」的促销活动,它的规则是这样的。活动规则客户购买 X 瓶酒,就可以用 Y 个空酒瓶来兑换一瓶新酒。提示:X 和 Y 的取值如下:1...
2020-11-12
算法 Notes|LeetCode 14. 最长公共前缀 - easy
前言对于算法,个人觉得,有的只是自己辛苦,私下多思考,多画图,多理解。没有最好的方式,也没有最快捷的法子,有的只是自己摸索中不断前行,附上之前刷题笔记:算法 Notes|LeetCode 349. 两个数组的交集 - easy多想,多画,多练,多思考,多理解,多分享,莫慌,莫怕,一步一脚印前行。加油~GitHub 地址如下:[链接...
2020-11-20
解决宝塔部署vue项目时,访问首页正常,其他页面无法访问404
如题,访问首页没问题,其他页面404.其实只要项目配置伪静态即可; 宝塔-》网站-》设置-》伪静态 {代码...} 配置好保存即可;
【Redis学习笔记】2018-06-26 scan遍历二
顺风车运营研发团队 方波1 遍历算法 以上过程可以概括为 同余分组 2 scan 超出预期个数问题 scan结果: redis存储分布: 遍历顺序: 遍历代码: 结论: scan按照反转二进制算法形成特殊的遍历顺序保证在rehash扩容时不重不漏,由于按照游标进行遍历,当遇到有hash冲突时,返回结果可能超过预期。
2018-07-02
Lintcode3 统计数字
采用《编程之美》的算法,但是这个算法会在自动统计置零位。例如9会当作09处理,从而多统计一个0。所以在统计完成后对count的值再调整。代码如下。
2017-12-27
重论JavaScript伪数组的种种
伪数组 javascript的伪数组理解 什么是伪数组? 定义:obj instanceof Array === false 但是有length属性 以下是常见伪数组: arguments NodeList、HTMLCollection jQuery对象 伪数组转为真·数组 Array.prototype.splice.call(obj) 自定义伪数组 类数组 {代码...} 类数组当作数组使用的原理:length相当于obj的键名 {代码...
2017-10-31
策略模式
某公司需要每个周五每名员工都要提交周报,在该公司可以提交周报的行为或者“算法”有:邮箱提交、SVN、Git后两种一般是开发部门使用的(刚开始还没有Git提交方式)。 那么在该场景中我们是如何设计业务逻辑呢?
压缩算法 LZW
LZW压缩算法的基本原理:提取原始文本文件数据中的不同字符,基于这些字符创建一个编译表,然后用编译表中的字符的索引来替代原始文本文件数据中的相应字符,减少原始数据大小 第一次实现的时候是用C# 和js用于数据压缩 ,当时刚毕业,是根据伪码写的,当时挺痛苦的,后来想想还是挺有意思的:)
2013-11-26
伪类和伪元素的区别是什么呢?
伪类(pseudo-class) 是一个以冒号(:)作为前缀,被添加到一个选择器末尾的关键字,当你希望样式在特定状态下才被呈现到指定的元素时,你可以往元素的选择器后面加上对应的伪类。
2020-07-20
设计模式-策略模式-说明
封装类:也叫上下文,环境类是使用算法的角色,它在解决某个问题(即实现某个方法)时可以采用多种策略,对策略进行二次封装,目的是避免高层模块对策略的直接调用。
2019-03-28
JavaScript设计模式与开发实践系列之策略模式
本系列为《JavaScript设计模式与开发实践》(作者:曾探)学习总结,如想深入了解,请支持作者原版 策略模式 策略模式的定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以互相替换。 举个形象的例子,使用策略模式计算奖金。 业务需求: 绩效为S的人年终奖有4倍工资 绩效为A的人年终奖有3倍工资 绩效为B的...
慕课网_《Java实现Base64加密》学习总结
时间:2017年4月10日星期一说明:本文部分内容均来自慕课网。@慕课网:[链接]教学示例源码:[链接]个人学习源码:[链接] 第一章:概述 1-1 Java实现Base64加密概述 Java加、解密基础与Base64算法 应用示例:邮箱发送邮件 Base64严格意义上来说,并不算一个加解密的算法。通常也会把它作为加解密的方法来使用。 包含的内...
2017-04-16
史上最清晰的Tarjan算法详解
对于语义的分析,我们采用的控制流和数据流也都无一例外的采用了以图为基础的算法, 通过图的可达性, 来完成变量、表达式的可达分析, 以及变量的依赖分析、值流图等等。
设计模式篇之策略模式
本篇文章将介绍一种行为模式-策略模式,该模式在开发中也非常的常见。下边将介绍三个问题:什么是策略模式?使用策略模式的场景?如何实现策略模式?1. 什么是策略模式?策略模式是一种行为模式,用于解决在程序运行过程中算法/行为动态调整变化的问题。这种模式需要提前定义好程序运行过程中需要用到的算法/行为,比如...
2024-07-14