• 开发tips --持续更新

    版本号是什么MAJOR.MINOR.PATCH 以上分别指的是: MAJOR(主版本号):当你做了不兼容的 API 修改时,增加主版本号。 MINOR(次版本号):当你做了向下兼容的功能性新增时,增加次版本号。 PATCH(补丁版本号):当你做了向下兼容的问题修正时,增加补丁版本号。 linux和windows的换行符区分 linux用的是LF(\n) windows用的是CRLF(\r...
  • 以EJS为基础的高效静态网站搜索引擎

    起因在使用 hexo 作为博客框架,采用 redefine 作为布局框架的时候我感觉在一些地方非常不方便,尤其是每次写完新 post 就要推送一大坨变更,因为每篇 post 之间的耦合性太强,在渲染的时候每篇博客的很多细节都要改,这样就导致一个问题,每篇 post 没有专属于自己的推送记录,就无法通过这个过程为每次更新的内容做标注,如果想要找到之前的内容大概和什么有关,只有 tag cate...
  • 设计一个ATM机器

    设计一个ATM机器🟨 做题过程 本来觉得维护一个普通数组就可以了,其实确实也是这样的,但是我写的依托💩。 算法概述 原题 本题要求为设计一个ATM类,会读取不同面额的钞票,每次吐钞票的时候优先吐面额大的,还会判断够不够吐。 时间复杂度为O(nk):k指的是钞票的面额种类数 空间复杂度为O(k) JAVA 123456789101112131415161718192021222...
  • 第147场双周赛

    🚀竞赛 字符串匹配模式🟩 做题过程 真是吐了,一个半小时都没做出来这道简单题,心态真的爆炸。 算法概述
  • 我的日程安排表 III

    我的日程安排表 III🟨做题过程用线段树写起来很麻烦,就差分很快写完了,在能不能剪枝上卡了一下,后面还是没有剪枝,好像不能剪枝。 算法概述原题 本题要求为每次加入预定区间后返回预定区间最大重叠次数。差分太简单了,还是以线段树为准。 时间复杂度为 空间复杂度为 JAVA12345678910111213141516171819202122232425262728293031class M...
  • 数学 --面试经典150题

    回文数 做题过程 不会,只能面向结果。 算法概述 原题 本题要求为如题所示。 时间复杂度为O(log⁡n)O(\log{n})O(logn):log类型的时间复杂度是自动忽略底数的,这是因为底数相当于常数 空间复杂度为O(1)O(1)O(1):优化的核心 JAVA 12345678910111213141516171819class Solution { public bo...
  • 我的日程安排表 II

    我的日程安排表 II🟨 做题过程 本来以为把I中的哈希集合改成哈希表就行了,但是懒标记不能像I中那么处理了。 算法概述 原题 本题要求为用一个类来管理日程安排(区间单位),当交叉或者重叠的区间超过三次,则不再插入,返回错误。还是使用 线段树 或者说 差分数组 。 线段树: 时间复杂度为O(nlog⁡C)O(n \log{C})O(nlogC):log⁡C\log{C}logC 为线...
  • 我的日程安排表 I

    我的日程安排表 I🟨做题过程想不到用哈希表存的其他方法,感觉最优的策略就是每次存储然后跟哈希表的每个entrySet做比较。 算法概述原题 本题要求为用一个类来管理日程安排,每次输入开始时间和结束时间,如果没有时间重叠则可放入类内,如有冲突时间,则返回错误。使用直接遍历(或二分查找优化),或者是 线段树 。 时间复杂度为: 为线段树的最大深度 空间复杂度为 JAVA1234567891...
  • 位运算 --面试经典150题

    二进制求和🟩 做题过程 完全不懂位运算怎么弄。 算法概述 原题 本题要求为给出二进制数字的字符串,返回加法结果。使用 位运算 或者模拟解决。 时间复杂度为O(∣a∣+∣b∣+X⋅max⁡(∣a∣,∣b∣))O(|a|+|b|+X \cdot \max(\lvert a \rvert , \lvert b \rvert))O(∣a∣+∣b∣+X⋅max(∣a∣,∣b∣)):也就是转换...
  • 将日期转换为二进制表示

    将日期转换为二进制表示(easy)做题过程这种一般都有内置方法可以直接调用完成的。 算法概述原题 本题要求为将给出的字符串日期表示转换为二进制表示。采用各语言内置方法及拼接字符串即可。 时间复杂度为O(1) 空间复杂度为O(1) PYTHON123456789class Solution: def binary(self, x: int) -> str: ret...
1238