自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 收藏
  • 关注

原创 博客迁移说明

由于图片存储机制,导致我在CSDN上的博客图片显示不完整,所以打算自己搭建一个博客,使用的是GitHub pages+hexo的技术栈,其内部可以非常完美地实现图片的链接机制,所以今后打算都在我的个人博客上更新博客了。如果有需要,今后会在这博客下提供github pages博客快速搭建以及使用快速入门。地址如下:https://lumxi.github.io/

2022-09-11 15:51:15 436 1

原创 5.13一行代码就能解决的算法题

你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/nim-game著作权归领扣网络所有。

2022-09-03 11:05:39 858

原创 5.11-5.12Union-Find算法详解

并查集算法主要是用来解决图论中**“动态连通性”**问题的。简单来说动态连通性其实可以抽象成一幅图连线,比如说有一幅图,总共有10个节点,它们互不连通,分别用0-9进行标记[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FcJ1dL6K-1662174261439)(./image/UF-01.png)]Union-Find算法需要实现以下这两个API。

2022-09-03 11:04:41 455

原创 5.10如何调度考生的座位

在考场里,一排有 N 个座位,分别编号为 0, 1, 2, …, N-1。当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上。如果有多个这样的座位,他会坐在编号最小的座位上。(另外,如果考场里没有人,那么学生就坐在 0 号座位上。)返回 ExamRoom(int N) 类,它有两个公开的函数:其中,函数 ExamRoom.seat() 会返回一个 int (整型数据),代表学生坐的位置;

2022-09-03 11:04:11 1114

原创 5.9如何判断括号的合法性

对括号的合法性判断是一个常见而且实用的问题,而且我们的代码可能会包括三种括号[]{}(),判断起来会具有一些难度给你输入一个字符串,其中包含[](){}六种括号,请判断这个字符串组成的括号是否合法对于这种全局难的问题,可以采用一种局部分析到全局的办法进行分析。...

2022-09-01 15:00:09 578

原创 5.7-5.8贪心算法应用实例

贪心算法可以认为是动态规划中算法的一个特例,相比于动态规划,使用贪心算法需要满足更多的条件(贪心选择性质),但是效率比动态规划要高比如一个算法问题使用暴力解法需要指数级别的时间,如果能使用动态规划消除重叠子问题,就可以降到多项式级别的时间复杂度,如果满足贪心选择性质,那么可以进一步降低时间复杂度到达线性级别贪心选择性质:每一步都做出一个局部最优的旋转,最终的结果就是全局最优,一个比较浅显的例子就是,现在给你100张人民币,要求获得最多钱,那么我只要在接下来的每次选择中都选择面额最大的那张纸币就可以了。...

2022-08-30 22:55:24 371

原创 5.6如何寻找最长回文子串

给你一个字符串s,找到s中最长的回文子串。双指针样例分析:输入s=acaba,那么算法应该要返回aca或者aba当拿到题目没有思路的时候,不妨先从局部入手,从局部逐步推导达到最优解s'ss'存在于raw字符串raw'aacxycaaaacyxcaaaaccaa。...

2022-08-30 22:54:15 309

原创 数据库原理(1)综述

数据定义语言(Data-Definition Language,DDL):数据库模式(架构)是通过一系列定义来说明,这些定义由一种称作为DDL的特殊语言来表达。DDL也可以用来定义数据的其他特征数据库系统所使用的存储结构和访问方式通过一系列特殊得到DDL语句来说明的,这种特殊的DDL称作**数据存储和定义(data storage and definition)**语言存储在数据中的数据值必须满足某些一致性约束(consistenhcy constraint)...

2022-08-30 22:53:31 426

原创 5.5如何去除有序数组的重复元素

给你一个 升序排列 的数组 nums ,请你原地删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。...

2022-08-30 19:46:23 359

原创 5.3-5.4二分搜索算法实例

搜索空间是有序的珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。珂珂可以决定她吃香蕉的速度 k (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 k 根。如果这堆香蕉少于 k 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 h 小时内吃掉所有香蕉的最小速度 k(k 为整数)。来源:力扣(LeetCode)...

2022-08-29 22:07:58 280

原创 5.1-5.2高效解决常见数论问题

输入一个正整数n,函数返回区间[2,n)中素数的个数这种解法下,i不需要遍历到你n,只需要到sqrt(n)即可。假设n=12时sqrt(n)n。

2022-08-29 22:07:22 205

原创 4.10扁平化嵌套序列

给你一个嵌套的整数列表 nestedList。每个元素要么是一个整数,要么是一个列表;该列表的元素也可能是整数或者是其他列表。请你实现一个迭代器将其扁平化,使之能够遍历这个列表中的所有整数。实现扁平迭代器类 NestedIterator :NestedIterator(List nestedList) 用嵌套列表 nestedList 初始化迭代器。int next() 返回嵌套列表的下一个整数。boolean hasNext() 如果仍然存在待迭代的整数,返回 true;...

2022-08-28 12:07:59 301

原创 4.9前缀和解决子数组问题

思路:对于一个给定的数组nums,额外开辟一个前缀和数组进行预处理//前缀和数组:定义前n项的和,也就是下标从[0...i-1]的和 int [ ] preSum = new int [ n + 1 ];//n+1:因为需要记录前n项的和,因此需要多一位 preSum [ 0 ] = 0;//前0项的和当然为0 for(int i = 1;i ...

2022-08-28 12:07:33 188

原创 4.8烧饼排序问题

给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序。一次煎饼翻转的执行过程如下:选择一个整数 k ,1

2022-08-28 12:06:10 424

原创 4.7拆解复杂问题-实现计算器

- * /

2022-08-28 12:05:41 227

原创 nSum问题解题套路4.5-4.6

对于2sum问题,一个难点就是给的数组无序,对于一个无序的数组,似乎只能暴力穷举所有的可能一般情况下,我们会首先把数组排序再考虑双指针到的技巧,2Sum启发我们,HashMap或者HashSet也可以帮助我们处理无序数组的相关问题,如果给定的数组是有序的,那么算法应该这样写left ++;right ++;}...

2022-08-26 15:52:13 294

原创 回溯算法4.1-4.4

1,2][1,2,3][1,2,3][1,2][1,2,3][1,2][1,2][1]来分析一下这个问题的时间复杂度,计算递归算法的时间复杂度方法是,找到,对于这个问题而言,递归的问题是N,但是我们发现每次递归for循环的迭代次数取决于res的长度,这并不是固定的依照刚才的思路,res的长度应该是每次递归都会翻倍,所以说总的迭代次数应该是2N个,所以说res添加元素只有会有2^N,同时我们copy的时候,是把ans[i]复制一份添加到数组的最后,所以一次操作的时间是O(N),还是比较耗时的。...

2022-08-26 15:51:28 174

原创 3.7-3.11特殊数据结构

可以使得每次新元素入栈后,栈内的元素都保持单调(单调递增或者单调递减)单调栈一般用来决绝nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置右侧的第一个比 x大的元素。给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。...

2022-08-26 15:50:51 202

原创 3.1-3.2LFU&LRU算法

LFU算法:每次淘汰那些使用次数最少的数据,LRU算法相当于把数据按照时间进行排序,这个需求借助链表很自然就能够实现,一直从链表头部加入元素的话,就可以实现这个需求,其越接近头部的话就是越新的数据,越接近尾部的元素就越是旧的数据,进行缓存淘汰的时候只需要简单将尾部的元素淘汰即可。LFU算法相当于把数据按照访问频次进行排序,如果多个数据拥有相同的访问频次就应该删除最早插入的那个数据,也就是说LFU算法是淘汰访问频次最低的数据,如果访问频次最低的数据有多条,需要淘汰最旧的数据。

2022-08-23 12:02:19 657

原创 3.3-3.6二叉树专题

遍历BST,找到合适的位置:从root节点开始,按照左小右大的规则找位置,我们为了简化问题,就不做那种从已有节点中强行插入的操作了,我们要的最终效果是找到一个空的位置,按照规则将节点连接上就好了。或许可能会问,诶这个右子树中的任意一个节点不是也比左子树的所有节点都要大吗,那我在右边瞎选一个就不行吗,注意,这里要求的是两个同时成立,万一你选出来的这个节点比右子树的一个节点要大咋办?给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。

2022-08-23 11:27:44 393

原创 瑞吉外卖(部署维护篇)

Nginx是一款轻量级的web服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。其特点是占用内存少,并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用Nginx的网站有百度、京东等后边那一串是安装位置重点目录conf/nginx.conf nginx 配置文件html 存放静态文件(html、css、JS)logs 日志目录、存放日志文件sbin/nginx 二进制文件,用于启动。停止nginx服务。...

2022-08-18 15:39:25 2080

原创 瑞吉外卖(优化篇)

Mysql主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能,就是一台或者多态Mysql数据库(slave,即从库)从另一台MySql数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库数据和主库的数据保持一致。MySql主从复制是MySql数据库自带功能,而无需借助第三方工具MySql复制过程分成三步master将改变记录到二进制日志(binary log)...

2022-08-18 15:38:24 2744 2

原创 算法套路学习笔记(第二章) 动态规划系列 2.13-2.19

遍历方向要根据base-case所定义的DP-table来决定,我们规定,当从第n间房子开始走的时候,这时候能取到的钱是0,那么也就是最后一个元素是0,那么我们遍历就要从倒数第二个元素来开始遍历。:当i=0的时候,也就是没有东西可以选了,这时候有0种凑法,当j=0的时候,表示当前背包容量为0,这时候有0种凑法。依旧是按照选择的套路来做,如果说我要拿这个房子的钱,那我要走下家的时候,只能走下家的下家。可以用来表示若只使用前i个物品,当背包容量为j的时候,有。的前i个物品,当背包容量为j的时候,有。...

2022-08-06 18:25:12 228

原创 实战项目:瑞吉外卖开发笔记

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eonpn32w-1659781065252)(./09-image/jsxx.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iwqosDu1-1659781065253)(./09-image/gnjg.png)]SpringBoot基础设置编写启动类引入前端资源要注意的是,由于页面等资源是静态资源,如果直接放在resources下的话访问是会被拦截的,为了避免这

2022-08-06 18:19:16 1370 1

原创 后端工程师之路(8)-springboot

2. SpringBoot基础配置2.1 配置文件格式找到application.properties文件新建application.yml,修改文件新建application.yaml,修改文件application.properties:主启动文件application.yml :第二启动文件application.yaml:第三启动文件使用缩进表示层级关系,同层级左侧对齐,只允许使用空格而不允许使用Tab键#表示注释数组数据2.3 yaml数据读取的方式2.4

2022-08-06 18:17:10 187

原创 算法套路学习笔记(第二章) 动态规划系列 2.9-2.13

假设你有一个特殊的检票,上面只有四个键,它们分别是A键,在屏幕上显示一个ACtrl-A选中整个屏幕Ctrl-C将选中的区域复制到缓冲区Ctrl-V将缓冲区的内容输出到光标所在的屏幕位置现在要求你只能进行N次操作,请你计算屏幕上最多能够显示多少个A?我们看到这个问题,其实就想到,其实这是个可以穷举的问题,我有N个位置,每个位置可以放4个中的其中一种操作,于是总情况数就是(4n)种,穷举出能够得到所有情况,然后求极值,这是最暴力的做法,时间复杂度到达了O(4n),绝对会超时状态选择。......

2022-07-26 00:37:32 142

原创 后端工程师之路(7)-SSM

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8bekEkqq-1658766926507)(./image/spring-s.png)]在之前编写的java-web代码中,使用过动态代理的思想,但是都是硬编码的,一旦需要修改实现类,就需要重新编译,测试,部署,上线,成本较高解决方案对象的创建控制权,这种思想称为控制反转使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部。由内部关联转化为外部关联Spring技术对IOC思想进行了实现D

2022-07-26 00:36:33 318

原创 后端工程师之路(6)注解与反射

Target({//注解的参数参数类型+参数名();}动态语言是一类在运行时可以改变其结构的语言,例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或者是其他结构上的变化,通俗点说就是在运行时代码可以根据某些条件改变自身的结构静态语言与动态语言相对应的是静态语言,运行时结构不可变,通过反射机制可以使得JAVA具有一定的动态性。......

2022-07-21 14:51:40 123

原创 后端工程师之路(5)并发编程

每个线程都具有优先权,具有较高优先权的线程优先于低优先级的线程执行,每个线程可能不会被标记为守护线程,当某个线程中运行的代码创建一个新的Thread对象时,新线程的优先级最初设置为等于创建线程的优先级,并且当且仅当创建线程被设置为守护线程时,才是守护线程当JAVA虚拟机启动时,通常有一个非守护进程线程(通常调用某些指定类为main的方法),JAVA虚拟机将继续执行线程,直到发生以下情况已经调用了RunTime类的exit()方法,并且安全管理器已经允许进行退出操作所有不是守护进程线程的线程都已经死亡

2022-07-15 14:38:01 360

原创 后端工程师之路(4)GIT工具的使用与介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bR0vvKt0-1657512048320)(./image/GIT.png)]2.4 基础指令操作执行,输入,观察到目录下创建.git文件后,即证明创建git目录成功Git工作目录下对于文件的会存在几个状态,这些修改的状态会随着我们执行GIT的命令而发生变化[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DdMl8Ivu-1657512048322)(./image/Git状态树.pn

2022-07-11 12:01:14 265

原创 算法套路学习笔记(第二章) 动态规划系列 2.4-2.8

关键是要学习 以及和 以及dp数组的,这就是最优子结构问题,如果要满足最优子结构问题,那么就必须要满足子问题之间相互独立的条件。如果有存在不满足最优子结构问题的,那么可以对该问题进行转换,可以通过一定的数学推理变换将不具有最优子结构的问题转换为具有最优子结构的问题。例如说:要求全校所有人的最大分数差,不能通过求取每班的最大分数差来求得,这种就不是直观的最优子结构问题,但是我们可以通过转换为其他具有最优子结构的而且该问题求解得出的参量与数据是有一定关系的。比如说我要求全校所有人的最大分数差,虽然没办法用

2022-07-10 15:03:40 125

原创 后端工程师之路(3)web核心

:响应数据的第一行。其中HTTP/1.1表示协议版本,200表示响应状态码,OK表示状态码描述:第二行开始,格式为key:val:最后一部分,存放响应数据常见的响应头:​Web项目结构创建方式然后检查maven变量是否正确即可[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DAdhVkvG-1657094983217)(./image/新建mavenWeb目录结构.png)]4. ServletJava提供的动态Web资源开发技术4.1 Servel快速入门引入依

2022-07-06 16:10:24 740

原创 后端工程师之路(2)前端基础

内部样式:定义style标签,在标签内部定义css样式外部样式:定义link标签,引入外部的css文件2.2 CSS选择器元素选择器:,将该页面下的所有div元素都设置上该styleid选择器:类选择器:2.3 CSS属性参考W3CSchool3.2 BOM(Browser Object Model)对象–浏览器模型对象javascript将浏览器的各个组成部分封装为对象Window浏览器窗口对象Navigator浏览器对象screen屏幕对象History历史

2022-07-02 21:46:09 193

原创 后端工程师之路(1)数据库基础

有以下几种对表的操作(CRUD)2.2 DML给指定的列添加数据:查询所有数据修改记录:删除记录:2.3 DQL(查询)2.3.1 基础查询查询多个字段去除重复记录起别名2.3.2 条件查询主要是运用关键字来对sql的查询结果进行限制主要是运用关键字来进行查询2.3.4 聚合函数聚合函数:将一列数据作为一个整体,进行聚合函数的分类聚合函数语法2.3.5 分组查询分组语句实例注意:分组之后查询

2022-07-02 13:07:11 689

原创 sim2real环境配置教程

由于官方提供的docker镜像地址源在国外,下载速度很慢,因此这里为提前将对应的服务端和客户端镜像都上传到了阿里云,先将镜像tar包下载到本地,在下载tar包的时候可以一边完成下面的操作。sim2real官方安装教程按照官方教程安装即可,这里说一下几个要点:主要是宿主机操作这一步骤存在较多差异,请主要参考本文档首先将启动脚本下载到本地,然后按照官方的提示文档安装:启动脚本如图注意宿主机操作的第二步操作[]这一步有坑,请按照我给的视频进行安装:注意宿主机操作的第五步操作[],这里的话的操作步骤如下:进入到如

2022-07-02 11:27:04 1566

原创 操作系统作业复习题

(a)举例说明代码中的空间局部性答:执行第一条指令后执行第二条指令,访问数组a[];(b)举例说明代码中的时间局部性答:循环体被频繁执行,a[i]在内层循环被访问了10次​ 答:中断:(I/O,存储器)正常处理过程的机制​ 4.多处理中断的方式是什么?​ 答:①顺序处理:正在处理一个中断时,,顺序处理各个中断②中断嵌套:定义中断优先级,允许高优先级打断低优先级中断的过程​ 答:高速缓存是比主存小而快的存储器,用来协调之间访问速度的差异,作为最近访问的内存数据的缓冲区操作系统在计算机系统中位于__(硬件和用户

2022-06-19 10:21:13 624

原创 操作系统复习大纲笔记

操作系统笔记大纲

2022-06-19 10:20:16 727

原创 软件工程复习提纲

软件工程复习笔记

2022-06-16 15:57:17 372

原创 操作系统(12) 文件管理

1bit => 1块的状态,,这个就相当于是数组的寻址方式,字号可以看成是行,位号可以看成是列,要找到某一个元素的地址那就是即可寻址将所有空闲盘块号放在磁盘一个保留区里。 此表可部分复制到内存,可排序以 实现连续分配。UNIX:三类用户,权限(读/写/执行)以3位八进制表示。6.3 索引节点 i-nodeUNIX中的文件控制块:索引节点 i-node。创建文件时,在磁盘上建立一个磁盘i-node。文件名和号保存在目录项中除文件名外,所有其它属性都保存在 i-node 中。目录

2022-06-06 23:27:03 879

原创 操作系统(11) I/O管理和磁盘调度

磁盘访问时间包括如下三部分:Ta=Ts+Tr+TtRAID。 优势是:增加数据容量,多个磁盘可提高 速度,设置冗余磁盘可提高可靠性RAID级别:0~6,常用的RAID有0、1、5、6

2022-06-05 16:48:49 2336

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除