置顶文章

777 1 分钟

# 搭建环境:Ubuntu 18.04 LTS # 搭建指南 安装 Git# 安装 Gitsudo apt-get install git-core 安装 Node.js 进入 Node.js 官网下载 Linux 二进制文件。# 下载 Linux 二进制文件wget https://npmmirror.com/mirrors/node/v16.14.2/node-v16.14.2-linux-x64.tar.xz# 解压文件tar -xvf node-v16.14.2-linux-x64.tar.xz# 移动到 /usr/local/node 下sudo mv...

精选分类

文章列表

3.2k 3 分钟

# 什么是 Docker 随着技术的发展,计算机硬件越来越强,随之诞生出一些需求,其中一个是,想要充分的利用硬件,在一台计算机上运行多个操作系统,每个操作系统可以运行不同的应用来达到所需的要求,由此出线了虚拟机技术。 虚拟机技术是在操作系统层上面又增加了一个虚拟机管理层,每当创建一个虚拟机,就会在虚拟机里再创建一个操作系统。这种做法的坏处在于虚拟机创建的独立的操作系统极大消耗了系统以及硬件资源。 为了解决避免这个问题诞生了容器 (Container)...
3.1k 3 分钟

Swagger 是一个 API 文档生成和可视化工具。它基于 OpenAPl(以前称为 Swagger)规范,用于描述 API 的结构、操作、参数和响应。Swagger 可以生成 API 文档,包括 API 端点、请求参数、响应示例等信息。开发人员可以使用 Swagger 文档来了解如何使用 AP1,并进行自助式测试。Swagger 还提供了一些其他功能,如代码生成、Mock 服务器等。 安装: pip install apispec flask-apispec flask-restful-swagger PyYAML在构建 Flask App 对象的地方添加以下内容: from...
698 1 分钟

# 深度优先搜索理论基础 # DFS 和 BFS 的区别 DFS 是向一个方向搜到底,搜不下去了才换方向回溯。 BFS 是把本节点所连接的所有节点全遍历一遍,走到下一个节点的时候,再把连接节点的所有节点遍历一遍,搜索方向更像是广度,四面八方的搜索过程。 # DFS 的搜索过程 如图是一个无向图,我们要搜索从节点 1 到节点 6 的所有路径: 那么 dfs 搜索的第一条路径是这样的: 此时找到了 6,那么应该再去搜索其他方向了。 撤销了路径 2,然后改变方向走路径 3,接着也找到了 6. 撤销 2 改为路径 3 的过程就是回溯。 此时又到头了,撤销路径 4,改走路径...
14k 13 分钟

# 实现第一个 RESTful API 用 Flask 先写一个小 demo 来了解 RESTful API。 URL 以以下规范显示 http://localhost:5000/students/1 其中, students 为表名,表面 API 是要对 students 进行请求。 1 表示表示,要对 id 号为 1 的 students 进行相关请求。 发送 GET 请求 结合 URL,说明要请求 id 号为 1 的学生信息。 Response 送回 json 格式的数据,例如: { "id": 1, "name":...
867 1 分钟

RESTful API 是一种软件架构风格,使用的 HTTP 格式请求,将 HTTP 请求规范化。主要用来前后端通讯,携带的数据大多为 json 格式。 # 设计理念 REST 即 Representational State Transfer 的缩写,或者叫做表现层状态转化。 如果一个架构符合 REST 原则,则称他为 RESTful 的构架。 资源与 URI 和...
6.4k 6 分钟

# 下一个更大元素 II 题目链接🔗 处理循环数组有两种方法。 这个数组复制一份,将两个数组拼接在一起。 class Solution {public: vector<int> nextGreaterElements(vector<int>& nums) { // 拼接一个新的 nums vector<int> nums1(nums.begin(), nums.end()); nums.insert(nums.end(), nums1.begin(),...
2.8k 3 分钟

# 单调栈的理论基础 通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。时间复杂度为 O...
3.4k 3 分钟

# 编辑距离 题目链接🔗 确定 dp 数组以及下标的含义 dp [i][j]: 表示以 i-1 为结尾的字符串 word1,和以 j-1 为结尾的字符串 word2,最近的编辑距离为 dp [i][j]。 确定递推公式 当 word1 [i-1] == word2 [j-1] 不做任何操作:dp [i][j] = dp [i-1][j-1] 当 word1 [i-1] != word [j-1],以下三种情况取最小 增:word2 删除一个元素,那么就是下标 i-1 为结尾的 word1,与 j-2 为结尾的 word2...
3.8k 3 分钟

# 不想交的线 题目链接🔗 直线不能相交,这就是说明在字符串 A 中找到一个与字符串 B 相同的子序列,且这个子序列不能改变相对顺序,只要相对顺序不改变,链接相同数字的直线就不会相交。 本题说是求绘制的最大连线数,其实就是求两个字符串的最长公共子序列的长度。 class Solution {public: int maxUncrossedLines(vector<int>& A, vector<int>& B) {...
2.8k 3 分钟

# 最长递增子序列 题目链接🔗 确定 dp 数组以及下标的含义 dp [i]: 表示 i 之前 (包括 i) 的以 nums [i] 结尾的最长递增子序列长度。 确定递推公式 位置 i 的最长升序子序列等于 j (0 到 i-1) 各个位置的最长升序子序列 + 1 的最大值。 所以 if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1) dp 数组的初始化 每一个 i,对应的 dp [i](即最长递增子序列)起始大小至少都是 1. 确定遍历顺序 dp [i] 是有 0 到 i-1 各个位置的最长递增子序列...