【一个月备战蓝桥算法】递归与递推
字典序
在刷题和计算机科学领域,字典序(Lexicographical order)也称为词典序、字典顺序、字母序,是一种对序列元素进行排序的方式,它模仿了字典中单词的排序规则。下面从不同的数据类型来详细解释字典序:
字符串的字典序
在字典中,单词是按照字母的先后顺序排列的。对于两个字符串,字典序的比较规则如下:
-
比较过程:从两个字符串的第一个字符开始逐个比较,如果对应位置的字符不同,则字符 ASCII 码值小的字符串排在前面;如果对应位置字符相同,则继续比较下一个位置的字符,直到出现不同字符或者其中一个字符串结束。
-
示例:
-
比较 "apple" 和 "banana",因为第一个字符 'a' 的 ASCII 码值小于 'b',所以 "apple" 在字典序中排在 "banana" 前面。
-
比较 "apple" 和 "app",前三个字符都相同,但 "app" 先结束,所以 "app" 在字典序中排在 "apple" 前面。
-
整数序列的字典序
对于整数序列,同样可以按照字典序进行比较:
-
比较过程:将整数序列看作由数字组成的字符串,从序列的第一个元素开始逐个比较元素的大小,如果对应位置的元素不同,则元素值小的序列排在前面;如果对应位置元素相同,则继续比较下一个位置的元素,直到出现不同元素或者其中一个序列结束。
-
示例:
-
比较序列
[1, 2, 3]
和[2, 1, 3]
,第一个元素 1 小于 2,所以[1, 2, 3]
在字典序中排在[2, 1, 3]
前面。 -
比较序列
[1, 2, 3]
和[1, 2]
,前两个元素都相同,但[1, 2]
先结束,所以[1, 2]
在字典序中排在[1, 2, 3]
前面。
-
在刷题中的应用
在很多算法题中,字典序常常作为排序的依据或者要求输出的结果满足字典序的要求,例如:
-
全排列问题:要求输出给定序列的所有全排列,并且按照字典序输出。例如,对于序列
[1, 2, 3]
,其全排列按照字典序输出为[1, 2, 3]
、[1, 3, 2]
、[2, 1, 3]
、[2, 3, 1]
、[3, 1, 2]
、[3, 2, 1]
。 -
子集问题:可能要求输出所有子集,并且按照字典序排列。
代码示例(C++ 实现全排列并按字典序输出)
#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> nums = {1, 2, 3};do {for (int num : nums) {std::cout << num << " ";}std::cout << std::endl;} while (std::next_permutation(nums.begin(), nums.end()));return 0;
}
这些代码示例展示了如何生成全排列并按字典序输出,在刷题中可以根据具体需求对代码进行调整。
92.递归实现指数型枚举
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 16; // 最大数据范围int statu[N]; // 状态数组 0表示未考虑 1表示选 2表示不选int n; // 标准输入void dfs(int u) // d{if(u > n) // 考虑到了最后一个位置 -- 递归出口{// 打印所有的数for(int i = 0; i <= n; i++){if(statu[i] == 1)printf("%d ", i);}printf("\n");// 打印换行,表示这一次枚举完毕return;// 返回上一层}// 不选的情况statu[u] = 2;dfs(u+1);statu[u] = 0;// 恢复现场// 选的情况statu[u] = 1;dfs(u+1);statu[u] = 0; }int main(){cin >> n;dfs(1); //对第1个数进行考虑return 0;}
94.递归实现排列型枚举
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;// 数组定义成全局变量,初始值一定是0,如果定义成局部变量,初始值随机
const int N = 10;
int status[N]; // 0表示未填入 1—n表示填入的数
bool used[N];// 标记这个数有没有被用过 true用过 false没有用过
int n;void dfs(int u)
{// 递归出口if(u > n){for(int i = 1; i <= n; i++) printf("%d ", status[i]);puts("");return;}// 依此枚举每个分支,即当前位置可以填哪些数for(int i = 1; i <= n; i++){if(!used[i]) // 当前的数没有用{status[u] = i; // 填入这个数used[i] = true; // 标记已使用dfs(u + 1);// 恢复现场used[i] = false;status[u] = 0;}}}int main()
{scanf("%d", &n);dfs(1);return 0;
}
93.递归实现组合型枚举
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;
int n, m;
const int N = 30;
int status[N];void dfs(int u, int start)
{// (u-1 + n - start + 1 < m)if(u + n - start < m) return; // 剪枝 -- start后面的数加起来都不够凑m个数// 递归出口if(u > m){for(int i = 1; i <= m; i++) printf("%d ", status[i]);puts("");return;}for(int i = start; i <= n; i++){status[u] = i;dfs(u+1, i+1);// 恢复现场status[u] = 0;}
}int main()
{scanf("%d %d", &n, &m);dfs(1, 1);return 0;
}
1209.带分数
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;
const int N = 10;
int ans = 0;int n;
bool status[N]; // 判重数组
bool backup[N];bool check(int a, int c)
{long long b = n * (long long)c - a * c;// a b c 不能为0if(!a || !b || !c) return false;memcpy(backup, status, sizeof(status));while(b){int x = b % 10;b = b / 10;// x在ac中不能出现, x不能为0if(!x || backup[x]) return false;backup[x] = true; }// 看看每个数字是否出现过 -- 必须全部出现for(int i = 1; i <= 9; i++){if(!backup[i]) return false;}return true;
}void dfs_c(int u, int a, int c)
{if(u == n) return;if(check(a, c)) ans++;for(int i = 1; i <= 9; i++){if(!status[i]){status[i] = true;dfs_c(u+1, a, c * 10 +i);status[i] = false;}}}void dfs_a(int u, int a)
{if(a >= n) return; if(a) dfs_c(u, a, 0); // 只要a小于n,每种情况下都有dfs_cfor(int i = 1; i <= 9; i++){if(!status[i]){status[i] = true;dfs_a(u+1, a * 10 + i);status[i] = false; }}
}int main()
{cin >> n;dfs_a(0, 0); // 当前已经用了多少个数字, 最开始a是0 cout << ans << endl;return 0;
}
717.简单斐波那契
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;int main()
{int n = 0;cin >> n;int F[47];F[0] = 0, F[1] = 1, F[2] = 1;for(int i = 3; i <= n; i++){F[i] = F[i-1] + F[i-2];}for(int i = 0; i < n; i++){cout << F[i] << " ";}return 0;
}
优化
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;int main()
{int n; cin >> n;int a = 0, b = 1;for(int i = 1; i <= n; i++){cout << a << ' ';int fn = a + b;a = b; b = fn;}return 0;
}
1208.翻硬币
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>using namespace std;const int N = 110;
char start[N], aim[N];void turn(int i)
{if(start[i] == '*') start[i] = 'o';else start[i] = '*';
}int main()
{cin >> start >> aim;int n = strlen(start);// 计算输入长度int ret = 0;for(int i = 0; i < n - 1; i++){if(start[i] != aim[i]){turn(i), turn(i+1);ret++;}}cout << ret << endl;return 0;
}
116.飞行员兄弟
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>using namespace std;
const int N = 5;
char g[N][N], backup[N][N];
typedef pair<int, int> PII;// 映射函数
int get(int i, int j)
{return i * 4 + j;
}void turn_one(int x, int y)
{if(g[x][y] == '-') g[x][y] = '+';else g[x][y] = '-';
}void turn_all(int x, int y)
{for(int i = 0; i < 4; i++){turn_one(x, i);turn_one(i, y);}turn_one(x, y); // xy在循环中被按了两次,现在调回去
}int main()
{vector<PII> res;// 输入for(int i = 0; i < 4; i++)for(int j = 0; j < 4; j++)cin >> g[i][j];// 枚举所有方案for(int op = 0; op < (1 << 16); op++){vector<PII> temp; // 存储方案memcpy(backup, g, sizeof(g)); // 备份方案// 枚举16个位置for(int i = 0; i < 4; i++)for(int j = 0; j < 4; j++){if(op >> get(i, j) &1) // 判断是不是要按开关{temp.push_back({i, j});turn_all(i, j);}}bool hash_close = false;// 判断是否全部灯泡已经亮了for(int i = 0; i < 4; i++)for(int j = 0; j < 4; j++)if(g[i][j] == '+')hash_close = true;if(!hash_close){if(res.empty() || res.size() > temp.size() ) res = temp;}memcpy(g, backup, sizeof(backup)); // 恢复方案}cout << res.size() << endl;for (auto op : res) cout << op.first + 1 << ' ' << op.second + 1 << endl;return 0;
}
相关文章:
【一个月备战蓝桥算法】递归与递推
字典序 在刷题和计算机科学领域,字典序(Lexicographical order)也称为词典序、字典顺序、字母序,是一种对序列元素进行排序的方式,它模仿了字典中单词的排序规则。下面从不同的数据类型来详细解释字典序: …...
二、Java-封装playwright UI自动化(根据官网执行步骤,首先封装BrowserFactory枚举类及BrowserManager)
前言 查看playwright官网,api文档了解到,playwright的基本步骤: 1、实例化一个playwright 2、启动一个浏览器类型 3、打开一个页面 所以,在封装时需要有一个浏览器工厂类,定义不同的浏览器类型,在配置文…...
java项目之基于ssm的在线视频网站开发(源码+文档)
项目简介 基于ssm的在线视频网站开发实现了以下功能: 该系统的目标用户包括管理员,用户。管理员上传视频,管理视频,查看视频留言,回复视频留言,管理视频收藏信息,管理公告,管理用户…...
观察者模式的C++实现示例
核心思想 观察者模式是一种行为型设计模式,定义了对象之间的一对多依赖关系。当一个对象(称为Subject,主题)的状态发生改变时,所有依赖于它的对象(称为Observer,观察者)都会自动收到…...
c语言中的主要知识点
一、基础语法与结构 程序结构 包含顺序结构、选择结构(if/switch)、循环结构(for/while/do-while)。 程序必须包含且仅有一个main函数作为入口。 数据类型与变量 基本类型:整型(int、long)、浮…...
Pytorch构建LeNet进行MNIST识别 #自用
LeNet是一种经典的卷积神经网络(CNN)结构,由Yann LeCun等人在1998年提出,主要用于手写数字识别(如MNIST数据集)。作为最早的实用化卷积神经网络,LeNet为现代深度学习模型奠定了基础,…...
docker:Dockerfile案例之自定义centos7镜像
1 案例需求 自定义centos7镜像。要求: 默认登录路径为 /usr可以使用vim 2 实施步骤 编写dockerfile脚本 vim centos_dockerfile 内容如下: #定义父镜像 FROM centos:7#定义作者信息 MAINTAINER handsome <handsomehandsome.com># 设置阿里云…...
post get 给后端传参数
post 方式一 : data: params 作为请求体(Request Body)传递: 你已经展示了这种方式,通过data字段直接传递一个对象或数组。这种方式通常用于传递复杂的数据结构。dowmfrom: function (params) { return request({ u…...
Linux 系统不同分类的操作命令区别
Linux 系统有多种发行版,每种发行版都有其独特的操作命令和工具。以下是一些常见的分类及其操作命令的区别: 1. 基于 Red Hat 的发行版 (RHEL, CentOS, Fedora) 1.1 包管理 安装软件包: bash复制 sudo yum install <package> 更新软件包: bash复制 sudo yum update…...
Checkpoint 模型与Stable Diffusion XL(SDXL)模型的区别
Checkpoint 模型与 Stable Diffusion XL(SDXL)模型 在功能、架构和应用场景上有显著区别,以下是主要差异的总结: 1. 基础架构与定位 Checkpoint 模型 是基于 Stable Diffusion 官方基础模型(如 SD 1.4/1.5)…...
软件工程与实践(第4版 新形态) 练习与实践1
软件工程与实践(第4版 新形态) 练习与实践1 1.填空题 (1)程序,文档 (2)系统软件,支撑软件,应用软件 (3)系统方法 (4)软件开发和维护 (5)工程的概念、原理、技术和方法 (6)实现软件的优质高产 (7)软件开发技术和…...
探秘基带算法:从原理到5G时代的通信变革【九】QPSK调制/解调
文章目录 2.8 QPSK 调制 / 解调简介QPSK 发射机的实现与原理QPSK 接收机的实现与原理QPSK 性能仿真QPSK 变体分析 本博客为系列博客,主要讲解各基带算法的原理与应用,包括:viterbi解码、Turbo编解码、Polar编解码、CORDIC算法、CRC校验、FFT/…...
侯捷 C++ 课程学习笔记:深入理解智能指针
文章目录 每日一句正能量一、引言二、智能指针的核心概念(一)std::unique_ptr(二)std::shared_ptr(三)std::weak_ptr 三、学习心得四、实际应用案例五、总结 每日一句正能量 如果说幸福是一个悖论ÿ…...
基于Qwen-VL的手机智能体开发
先上Demo: vl_agent_demo 代码如下: 0 设置工作目录: 你的工作目录需要如下: 其中utils文件夹和qwenvl_agent.py均参考自 GitHub - QwenLM/Qwen2.5-VL: Qwen2.5-VL is the multimodal large language model series developed by …...
系统盘还原成正常U盘
选择格式化,等格式化完毕就完了 点击还原设备的默认值格式化就完了...
Leetcode 103: 二叉树的锯齿形层序遍历
Leetcode 103: 二叉树的锯齿形层序遍历 问题描述: 给定一个二叉树,返回其节点值的锯齿形层序遍历(即第一层从左到右,第二层从右到左,第三层从左到右,依此类推)。 适合面试的解法:广…...
FastGPT 引申:基于 Python 版本实现 Java 版本 RRF
文章目录 FastGPT 引申:基于 Python 版本实现 Java 版本 RRF函数定义使用示例 FastGPT 引申:基于 Python 版本实现 Java 版本 RRF 函数定义 使用 Java 实现 RRF 相关的两个函数:合并结果、过滤结果 import java.util.*;// 搜索结果类型定义…...
C++中的无锁编程
引言 在当今多核处理器普及的时代,并发编程已成为高性能应用程序开发的关键技术。传统的基于锁的同步机制虽然使用简单,但往往会带来性能瓶颈和死锁风险。无锁编程(Lock-Free Programming)作为一种先进的并发编程范式,…...
【全栈开发】---- 一文掌握 Websocket 原理,并用 Django 框架实现
目录 介绍 底层原理 握手环节详解: 收发数据(加密) Django 中配置 channels 1、注册 channels 2、在 settings.py 中添加 asgi_application 3、修改 asgi.py 文件 4、routing 5、consumers 实现 聊天室 介绍 WebSocket是一种先进的通信协议&…...
游戏引擎学习第135天
仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 game_asset.cpp 的创建 在开发过程中,不使用任何现成的游戏引擎或第三方库,而是直接基于 Windows 进行开发,因为 Windows 目前仍然是游戏的标准平台,因此首先在这个环境中进行…...
国内支持Stable Diffusion模型的平台
国内支持Stable Diffusion模型的平台 截至2025年3月,国内支持SD模型的平台主要包括以下六类,覆盖不同用户需求和技术层级: 一、模型分享与下载平台 Liblib.ai 描述:国内最大SD原创模型社区,提供海量基础模型、Lora…...
扣子(Coze):重构AI时代的工作流革命
文章目录 扣子(Coze):重构AI时代的工作流革命使用Coze:一、工作流的本质:从单点智能到系统智能二、扣子工作流的技术基因三、场景化实践:从知识库到智能员工四、未来图景:AI Agent的进化之路结语…...
alloc、malloc 与 allocator:内存管理三剑客
内存管理是C语言开发者的核心能力,也是系统级编程的基石。 一、内存分配三剑客:malloc/calloc/realloc 1. malloc函数原理 int* arr (int*)malloc(5 * sizeof(int)); // 分配20字节空间(假设int为4字节) 从堆区分配指定字节的连…...
单细胞分析(21)——SCENIC 分析流程(singularity容器版)
SCENIC 分析流程笔记 SCENIC (Single-Cell rEgulatory Network Inference and Clustering) 是一种基于单细胞 RNA 测序数据的调控网络分析方法,主要用于识别调控因子(TFs)及其靶基因(Regulons),并评估这些…...
亚马逊云科技Marketplace(中国区)上架专业服务产品, “云生态连接器”价值凸显
近日,由西云数据运营的亚马逊云科技Marketplace(中国区)正式支持专业服务产品。此次发布将大幅简化企业对云专业服务的采购流程,实现云软件从规划、部署到支持的全生命周期管理,同时也为合作伙伴提供了更多的销售机会。…...
拉普拉斯·隆格·楞次矢量
L − R − L L-R-L L−R−L 矢量的推导 有平方反比有心力: F ⃗ − k r 2 r ^ \vec F-\dfrac{k}{r^2}\hat r F −r2kr^ 显然角动量 L ⃗ r ⃗ p ⃗ \vec L\vec r\times \vec p L r p 守恒。 故 ∣ L ⃗ ∣ Const \begin{vmatrix}\vec L\end{vmatrix}\…...
GStreamer —— 2.3、Windows下Qt加载GStreamer库后运行 - “教程3:动态管道“(附:完整源码)
运行效果(音频) 简介 上一个教程演示了GStreamer 概念。本教程中的管在它设置为 playing 状态之前完全构建。这没关系。如果 我们没有采取进一步的行动,数据会到达 pipeline 的 pipeline 和 pipeline 将生成错误消息并停止。但 我们将采取进一…...
jupyter notebook更改文件存储路径
默认情况打开是这样的 进入cmd或者Anaconda Prompt,输入以下命令 jupyter notebook --generate-config进入该目录 打开该文件,CTRLF 查找c.ServerApp.root_dir 进行修改。 这样就修改好啦!...
基于遗传算法的无人机三维路径规划仿真步骤详解
基于遗传算法的无人机三维路径规划仿真步骤详解 一、问题定义 目标:在三维空间内,寻找从起点到终点的最优路径,需满足: 避障:避开所有障碍物。路径最短:总飞行距离尽可能短。平滑性:转折角度不宜过大,降低机动能耗。输入: 三维地图(含障碍物,如立方体、圆柱体)。起…...
①EtherCAT转Modbus485RTU网关多路同步高速采集无需编程串口服务器
EtherCAT转Modbus485RTU网关多路同步高速采集无需编程串口服务器https://item.taobao.com/item.htm?ftt&id798036415719 型号 1路总线EC网关 MS-A2-1011 2路总线EC网关 MS-A2-1021 4路总线EC网关 MS-A2-1041 EtherCAT 串口网关 EtherCAT 转 RS485 技术规格 …...
Spring Boot WebFlux 中 WebSocket 生命周期解析
Spring Boot WebFlux 中的 WebSocket 提供了一种高效、异步的方式来处理客户端与服务器之间的双向通信。WebSocket 连接的生命周期包括连接建立、消息传输、连接关闭以及资源清理等过程。此外,为了确保 WebSocket 连接的稳定性和可靠性,我们可以加入重试…...
集合论之集合的表示法
目录 1. 说明 2. 常用表示法 2.1 枚举法(Roster Notation) 2.2 构建法(Set-builder notation) 3. 其它表示法 1. 说明 要表示一个集合,可以直接列出其元素,或者提供一种可以唯一地刻画其元素的方当。 2. 常用表示法 2.1 枚举法(Roster Notatio…...
【C语言】值传递与指针传递,以及 `.` 和 `->` 操作详解
在 C 语言中,函数参数的传递机制和结构体成员的访问方式是编程中的核心概念。值传递(pass-by-value)和指针传递(pass-by-pointer)决定了函数如何处理传入的数据,而 . 操作符 和 -> 操作符 则是访问结构体成员的两种主要工具。这两者密切相关,尤其在处理结构体时,它们…...
机器人训练环境isaac gym以及legged_gym项目的配置问题
完整的安装环境教程(强烈推荐):...
DeepSeek 开源周回顾「GitHub 热点速览」
上周,DeepSeek 发布的开源项目用一个词形容就是:榨干性能!由于篇幅有限,这里仅列出项目名称和简介,感兴趣的同学可以前往 DeepSeek 的开源组织页面,深入探索每个项目的精彩之处! 第一天 FlashML…...
冯 • 诺依曼体系结构
文章目录 冯 • 诺依曼体系结构的介绍冯 • 诺依曼体系结构的由来内存是如何提高冯•诺依曼体系结构效率的?为什么程序运行之前必须先加载到内存?从软件层面上再理解冯 • 诺依曼体系结构(QQ聊天的数据流动)一些知识的补充 冯 • …...
软考架构师笔记-存储管理
1.5 存储管理 存储管理 页式存储组织 虚地址 页号 | 页内地址页表 页号 | 块号物理地址 块号 | 页内地址访存两次:访问页表得到物理地址,根据物理地址得到数据就是把用户程序的空间分成若干页,把内存空间分成若干块,块和页的…...
【杂谈】信创电脑华为w515(统信系统)登录锁定及忘记密码处理
华为w515麒麟芯片版,还有非麒麟芯片版本,是一款信创电脑,一般安装的UOS系统。 准备一个空U盘,先下载镜像文件及启动盘制作工具,连接如下: 百度网盘 请输入提取码 http://livecd.uostools.com/img/apps/l…...
C#实现语音合成播报器——基于System.Speech的语音交互方案,在windows上实现语音播报指定文本
——基于System.Speech的语音交互方案,在windows上实现语音播报指定文本 一、语音合成播报应用场景 语音合成播报器广泛应用于以下领域: 工业控制:生产线异常报警、设备状态实时播报(如网页4中的WinCC语音报警插件)…...
【数据库】关系代数
关系代数 一、关系代数的概念二、关系代数的运算2.1 并、差、交2.2 投影、选择2.3 笛卡尔积2.4 连接2.5 重命名2.6 优先级 一、关系代数的概念 关系代数是一种抽象的数据查询语言用对关系的运算来表达查询 运算对象:关系运算符:4类运算结果:…...
点云滤波方法:特点、作用及使用场景
点云滤波是点云数据预处理的重要步骤,目的是去除噪声点、离群点等异常数据,平滑点云或提取特定频段特征,为后续的特征提取、配准、曲面重建、可视化等高阶应用打下良好基础。以下是点云中几种常见滤波方法的特点、作用及使用场景:…...
MWC 2025 | 移远通信大模型解决方案加速落地,引领服务机器人创新变革
随着人工智能、大模型等技术的蓬勃发展,生成式AI应用全面爆发。在此背景下,服务机器人作为大模型技术在端侧落地的关键场景,迎来了前所未有的发展机遇。 作为与用户直接交互的智能设备,服务机器人需要应对复杂场景下的感知、决策和…...
如何下载安装 PyCharm?
李升伟 整理 一、下载 PyCharm 访问官网 打开 PyCharm 官网,点击 "Download" 按钮25。 版本选择: 社区版(Community):免费使用,适合个人学习和基础开发。 专业版(Professional&#…...
STM32F407IGT的USB功能
使用STM32F407IGT的USB功能时,需注意硬件设计、协议配置、软件开发和调试等关键点。以下是分步指南和注意事项: 1. 硬件设计 USB接口选择: OTG FS(全速,12 Mbps):内置PHY,适用于简单应用(如HID、CDC)。OTG HS(高速,480 Mbps):需外接ULPI PHY芯片(如USB3300),…...
虚拟机IP配置
以下是在常见操作系统中配置虚拟机IP的一般步骤: 一、VMware Workstation(Windows或Linux主机下的虚拟机) 1. 桥接模式(Bridged)下的IP配置 - 在虚拟机设置中,将网络适配器设置为桥接模式。 - 启动虚拟机…...
机器学习-决策树详细解释
目录 一、预备知识 1.信息熵: 2.条件熵: 3.信息增益 4.基于信息增益选择分割特征的过程 5. C4.5算法 6.C435算法选择特征的策略 7 基尼不纯度: 二. 决策树的核心概念 1.树的结构 2.关键算法 三. 决策树的构建过程 1.特征选择 2.递归分割 3.停止条件 四. 决…...
kube-state-metrics镜像配置
在 Kubernetes 上部署 kube-state-metrics 时,镜像配置是非常重要的一步。kube-state-metrics 的官方镜像托管在 Google Container Registry (GCR) 上,但如果你无法直接访问 GCR,或者需要自定义镜像,可以按照以下步骤进行配置。 …...
计算机网络面试题
介绍一下Http常见的状态码 200 OK:最常见的成功响应码,表示服务器已成功处理了客户端的请求,请求的资源正常返回。400 Bad Request:表示客户端发送的请求存在语法错误或无法被服务器理解,如请求参数缺失、格式不正确等…...
Minix OS的配置 SSH C程序编译
Minix3的下载 官网:https://www.minix3.org/ 安装 平台:VMware 开机后进入系统使用setup命令来配置和安装尽量配置一个DNS服务器,比如8.8.8.8 SSH 安装:pkgin install openssh 修改配置文件,需要: 修…...
js的继承你了解多少
实现继承的方式有很多,下面我们来写常用的几种(包括但不限于原型链继承、构造函数继承、组合继承、寄生组合继承、ES6继承): 原型链继承 原型链继承通过修改子类的原型为父类的实例,从而实现子类可以访问到父类构造函…...