【秋招突围】2024届秋招笔试-小红书笔试题-第一套-三语言题解(Java/Cpp/Python)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员
✨ 本系计划跟新各公司春秋招的笔试题
💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导
👏 感谢大家的订阅➕ 和 喜欢💗
📧 清隆这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注CSDN同名公主号领取,会在飞书进行同步的跟新。
文章目录
- 📖 写在前面
- 夏天要来了 秋招还会远吗?
- 🌲 01.K小姐的字符串问题
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 数据范围
- 题解
- 参考代码
- 🍄 02.珍惜美食
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 数据范围
- 题解
- 参考代码
- 🍇 03.收藏家LAY小姐
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 数据范围
- 题解
- 参考代码
- 🎀 写在最后
- 🛖 这里介绍一下咱们的笔试打卡小屋
- 🥰 打卡奖励
- 🕰 每日学习安排
- 📖 打卡小屋涉及题型
- 基础算法
- 基础数据结构
- 搜索
- 动态规划 & 贪心 & 数论
📖 写在前面
夏天要来了 秋招还会远吗?
前不久春招也算是圆满结束咯,大家有拿到心仪的 offer吗?
接下来互联网的秋招也快来啦,小伙伴们有开始准备了吗?
本次给大家带来24届秋招 小红书 的笔试题目三语言解析(Java/Python/Cpp)
文末有清隆学长的笔试陪伴打卡小屋活动介绍:
✨丰富的打卡奖励等你来领哦,大厂笔试题汇总,笔试面试经验贴,算法笔试模版…
💽 有兴趣的小伙伴们也可以了解一下,不要错过啦~
🌲 01.K小姐的字符串问题
问题描述
K小姐最近在研究一个有趣的字符串问题。给定两个仅由小写字母组成的字符串 S S S 和 T T T,K小姐想知道在 S S S 中最多有多少个 不重叠 的子串,使得每个子串都是 T T T 的 异位词。这里两个字符串是 异位词 当且仅当两个字符串长度相同且每个字母出现的次数都相同。
例如,当 S S S = “abcbac”, T T T = “abc” 时,在 S S S 中最多有 2 个不重叠的子串 “abc” 和 “bac”,它们都是 T T T 的异位词。
输入格式
第一行包含一个字符串 S S S。
第二行包含一个字符串 T T T。
输出格式
输出一个整数,表示在 S S S 中最多有多少个不重叠的 T T T 的异位词子串。
样例输入
abcbac
abc
样例输出
1
数据范围
1 ≤ ∣ S ∣ , ∣ T ∣ ≤ 1 0 5 1 \le |S|, |T| \le 10^5 1≤∣S∣,∣T∣≤105
题解
本题可以用滑动窗口的思想来解决。我们可以维护一个长度为 ∣ T ∣ |T| ∣T∣ 的滑动窗口,统计窗口内每个字母出现的次数,并与 T T T 中每个字母出现的次数进行比较。如果窗口内的字母出现次数与 T T T 完全相同,则找到了一个异位词子串,答案加 1,并将窗口向右移动 ∣ T ∣ |T| ∣T∣ 个位置,继续查找下一个异位词子串。如果字母出现次数不同,就将窗口向右移动一个位置,继续进行比较。
具体实现时,我们可以用两个数组 c n t s cnt_s cnts 和 c n t t cnt_t cntt 分别存储窗口内和 T T T 中每个字母出现的次数。初始时,将 T T T 中每个字母出现的次数记录在 c n t t cnt_t cntt 中。然后枚举滑动窗口的起始位置 i i i,统计窗口内每个字母出现的次数,存入 c n t s cnt_s cnts 中。如果 c n t s cnt_s cnts 和 c n t t cnt_t cntt 完全相同,就将答案加 1,并将窗口向右移动 ∣ T ∣ |T| ∣T∣ 个位置;否则将窗口向右移动一个位置。
时间复杂度 O ( ∣ S ∣ ) O(|S|) O(∣S∣),空间复杂度 O ( ∣ Σ ∣ ) O(|\Sigma|) O(∣Σ∣),其中 Σ \Sigma Σ 为字符集大小。
参考代码
- Python
def count_anagrams(s: str, t: str) -> int:n, m = len(s), len(t)if n < m:return 0cnt_t = [0] * 26for c in t:cnt_t[ord(c) - ord('a')] += 1cnt_s = [0] * 26ans = 0for i in range(n):cnt_s[ord(s[i]) - ord('a')] += 1if i >= m:cnt_s[ord(s[i - m]) - ord('a')] -= 1if cnt_s == cnt_t:ans += 1for j in range(m):cnt_s[ord(s[i - j]) - ord('a')] -= 1return anss = input()
t = input()
print(count_anagrams(s, t))
- Java
import java.util.Scanner;public class Solution {public static int countAnagrams(String s, String t) {int n = s.length(), m = t.length();if (n < m) {return 0;}int[] cntT = new int[26];for (char c : t.toCharArray()) {cntT[c - 'a']++;}int[] cntS = new int[26];int ans = 0;for (int i = 0; i < n; i++) {cntS[s.charAt(i) - 'a']++;if (i >= m) {cntS[s.charAt(i - m) - 'a']--;}if (Arrays.equals(cntS, cntT)) {ans++;for (int j = 0; j < m; j++) {cntS[s.charAt(i - j) - 'a']--;}}}return ans;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.nextLine();String t = sc.nextLine();System.out.println(countAnagrams(s, t));}
}
- Cpp
#include <iostream>
#include <string>
#include <vector>using namespace std;int countAnagrams(string s, string t) {int n = s.size(), m = t.size();if (n < m) {return 0;}vector<int> cntT(26, 0);for (char c : t) {cntT[c - 'a']++;}vector<int> cntS(26, 0);int ans = 0;for (int i = 0; i < n; i++) {cntS[s[i] - 'a']++;if (i >= m) {cntS[s[i - m] - 'a']--;}if (cntS == cntT) {ans++;for (int j = 0; j < m; j++) {cntS[s[i - j] - 'a']--;}}}return ans;
}int main() {string s, t;getline(cin, s);getline(cin, t);cout << countAnagrams(s, t) << endl;return 0;
}
🍄 02.珍惜美食
问题描述
K小姐是一位美食家,她最近来到了一个美食之都。这个城市以街边小吃和特色餐厅闻名于世,每条街道上都有许多独特的美食店铺。
共有 n n n 家店铺坐落在同一条街道上,第 i i i 家店铺提供 a i a_i ai 份第 i i i 种美食。K小姐希望品尝尽可能多的美食,但由于时间和胃容量有限,她最多只能光顾 k k k 次店铺。每次光顾可以选择一段连续的店铺,并品尝这些店铺提供的所有美食。
为了不错过任何一种美味,K小姐希望在光顾店铺后,剩下的美食种类数量仍然大于 0 0 0,并且剩余美食中数量最少的那一种尽可能多。
请问,K小姐最多能让剩余美食中数量最少的那一种有多少份呢?
输入格式
第一行包含两个正整数 n n n 和 k k k,分别表示店铺数量和最多光顾次数。
第二行包含 n n n 个正整数,其中第 i i i 个数为 a i a_i ai,表示第 i i i 种美食的份数。
输出格式
输出一个整数,表示剩余美食中数量最少的那一种的最大可能份数。
样例输入
5 1
45 39 90 65 15
样例输出
45
数据范围
1 ≤ n ≤ 1 0 5 1 \le n \le 10^5 1≤n≤105
0 ≤ k ≤ 1 0 5 0 \le k \le 10^5 0≤k≤105
1 ≤ a i ≤ 1 0 6 1 \le a_i \le 10^6 1≤ai≤106
题解
这道题可以使用贪心的思想来解决。我们可以分情况讨论:
- 当 k = 0 k=0 k=0 时,不能光顾任何店铺,因此剩余美食中数量最少的就是所有美食中最少的那一种。
- 当 k = 1 k=1 k=1 时,可以选择光顾街道的左端或右端,剩余美食中数量最少的就是左右两端美食数量的较大值。
- 当 k ≥ 2 k \ge 2 k≥2 时,可以先光顾左右两端,然后剩下的美食可以任意选择。此时剩余美食中数量最少的就是所有美食中最多的那一种。
因此,我们可以根据 k k k 的值,直接求出答案。
时间复杂度: O ( n ) O(n) O(n),空间复杂度: O ( 1 ) O(1) O(1)。
参考代码
- Python
n, k = map(int, input().split())
a = list(map(int, input().split()))def solve(n, k, a):if k == 0:return min(a)if k == 1:return max(a[0], a[-1])return max(a)res = solve(n, k, a)
print(res)
- Java
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int k = sc.nextInt();int[] a = new int[n];for (int i = 0; i < n; i++) {a[i] = sc.nextInt();}int res = solve(n, k, a);System.out.println(res);}public static int solve(int n, int k, int[] a) {if (k == 0) {return min(a);}if (k == 1) {return Math.max(a[0], a[n - 1]);}return max(a);}public static int min(int[] a) {int min = a[0];for (int i = 1; i < a.length; i++) {min = Math.min(min, a[i]);}return min;}public static int max(int[] a) {int max = a[0];for (int i = 1; i < a.length; i++) {max = Math.max(max, a[i]);}return max;}
}
- Cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int solve(int n, int k, vector<int>& a) {if (k == 0) {return *min_element(a.begin(), a.end());}if (k == 1) {return max(a[0], a[n - 1]);}return *max_element(a.begin(), a.end());
}int main() {int n, k;cin >> n >> k;vector<int> a(n);for (int i = 0; i < n; i++) {cin >> a[i];}int res = solve(n, k, a);cout << res << endl;return 0;
}
🍇 03.收藏家LAY小姐
问题描述
LYA 是一位喜欢收藏的玩家,她最近在玩一款叫做"动物之森"的游戏。在游戏中,LYA 拥有很多个宝箱,每个宝箱里都装着一些她收集的宝石。每一种类型的宝石都有不同的作用。
有一天,LYA 在游戏中遇到了另一位玩家 A 先生。A 先生告诉 LYA,如果她的宝箱满足以下 3 3 3 个条件,那么她就能获得一个成就奖励:
- 每个宝箱里不会有两颗相同的宝石。
- 每一种类型的宝石,只出现在一个宝箱中或者出现在所有宝箱中。
- 每个宝箱的容量大小一样。
LYA 非常想要这个成就奖励,现在她想知道她的这些宝箱是否同时满足上述 3 3 3 个条件,能否获得成就奖励。
输入格式
第一行包含一个正整数 T T T,表示测试数据组数。
对于每组测试数据,第一行包含一个正整数 n n n,表示 LYA 的宝箱数量。
接下来的 n n n 行,每行描述一个宝箱。每行的第一个数为正整数 t t t,表示这个宝箱的容量大小,后面跟着 t t t 个正整数 a i a_i ai,分别表示这个宝箱中每颗宝石的类型。
输出格式
对于每组测试数据,如果 LYA 的这些宝箱满足全部三个条件,则在一行中先输出 Yes,然后按编号从小到大输出所有宝箱中都有的宝石类型。如果没有任何一种类型的宝石为所有宝箱共有,则仅需要输出 Yes。
如果 LYA 的这些宝箱不满足以上的所有条件,则输出 NO。
样例输入
3
1
1 39
3
2 49 50
3 58 49 50
1 49
5
3 90 89 63
2 89 63
2 63 89
3 89 32 63
3 86 63 89
样例输出
Yes 39
NO
NO
数据范围
- 1 ≤ T ≤ 10 1 \leq T \leq 10 1≤T≤10
- 2 ≤ n ≤ 100 2 \leq n \leq 100 2≤n≤100
- 1 ≤ t ≤ 100 1 \leq t \leq 100 1≤t≤100
- 0 < a i < 2147483647 0 < a_i < 2147483647 0<ai<2147483647
题解
这道题需要我们判断给定的宝箱是否满足以下三个条件:
- 每个宝箱里不会有两颗相同的宝石。
- 每一种类型的宝石,只出现在一个宝箱中或者出现在所有宝箱中。
- 每个宝箱的容量大小一样。
我们可以逐个检查每个条件是否满足。
对于条件 1 1 1,我们可以对每个宝箱内的宝石类型进行去重,如果去重后的宝石类型数量与原来不同,则说明该宝箱内有重复的宝石,不满足条件 1 1 1。
对于条件 2 2 2,我们可以用一个哈希表 c n t cnt cnt 统计每种宝石类型出现的宝箱数量。遍历完所有宝箱后,检查哈希表中每个宝石类型的出现次数,如果不是 1 1 1 次或 n n n 次,则不满足条件 2 2 2。同时,我们可以把出现在所有宝箱中的宝石类型记录下来。
对于条件 3 3 3,我们只需要记录第一个宝箱的容量大小,然后检查后面每个宝箱的容量大小是否与第一个宝箱相同即可。
如果所有条件都满足,则输出 Yes 以及所有宝箱中都有的宝石类型(如果有的话);否则,输出 NO。
时间复杂度为 O ( n × t ) O(n \times t) O(n×t),其中 n n n 为宝箱数量, t t t 为每个宝箱的容量大小。空间复杂度为 O ( n × t ) O(n \times t) O(n×t)。
参考代码
- Python
T = int(input())
for _ in range(T):n = int(input())boxes = []for _ in range(n):box = list(map(int, input().split()))boxes.append(box[1:])is_valid = Truegem_cnt = {}cap = len(boxes[0])for box in boxes:if len(box) != cap:is_valid = Falsebreakif len(set(box)) != len(box):is_valid = Falsebreakfor gem in box:gem_cnt[gem] = gem_cnt.get(gem, 0) + 1common_gems = []for gem, cnt in gem_cnt.items():if cnt == 1 or cnt == n:if cnt == n:common_gems.append(gem)else:is_valid = Falsebreakif is_valid:print("Yes", end="")if common_gems:print(" " + " ".join(map(str, sorted(common_gems))))else:print()else:print("NO")
- Java
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int T = sc.nextInt();while (T-- > 0) {int n = sc.nextInt();List<Set<Integer>> boxes = new ArrayList<>();for (int i = 0; i < n; i++) {int t = sc.nextInt();Set<Integer> box = new HashSet<>();for (int j = 0; j < t; j++) {box.add(sc.nextInt());}boxes.add(box);}boolean isValid = true;Map<Integer, Integer> gemCnt = new HashMap<>();int cap = boxes.get(0).size();for (Set<Integer> box : boxes) {if (box.size() != cap) {isValid = false;break;}for (int gem : box) {gemCnt.put(gem, gemCnt.getOrDefault(gem, 0) + 1);}}List<Integer> commonGems = new ArrayList<>();for (Map.Entry<Integer, Integer> entry : gemCnt.entrySet()) {int cnt = entry.getValue();if (cnt == 1 || cnt == n) {if (cnt == n) {commonGems.add(entry.getKey());}} else {isValid = false;break;}}if (isValid) {System.out.print("Yes");if (!commonGems.isEmpty()) {Collections.sort(commonGems);for (int gem : commonGems) {System.out.print(" " + gem);}}System.out.println();} else {System.out.println("NO");}}}
}
- Cpp
#include <iostream>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
using namespace std;int main() {int T;cin >> T;while (T--) {int n;cin >> n;vector<vector<int>> boxes(n);for (int i = 0; i < n; i++) {int t;cin >> t;boxes[i].resize(t);for (int j = 0; j < t; j++) {cin >> boxes[i][j];}}bool isValid = true;unordered_map<int, int> gemCnt;int cap = boxes[0].size();for (const auto& box : boxes) {if (box.size() != cap) {isValid = false;break;}unordered_set<int> uniqueGems(box.begin(), box.end());if (uniqueGems.size() != box.size()) {isValid = false;break;}for (int gem : box) {gemCnt[gem]++;}}vector<int> commonGems;for (const auto& entry : gemCnt) {int cnt = entry.second;if (cnt == 1 || cnt == n) {if (cnt == n) {commonGems.push_back(entry.first);}} else {isValid = false;break;}}if (isValid) {cout << "Yes";if (!commonGems.empty()) {sort(commonGems.begin(), commonGems.end());for (int gem : commonGems) {cout << " " << gem;}}cout << endl;} else {cout << "NO" << endl;}}return 0;
}
🎀 写在最后
🛖 这里介绍一下咱们的笔试打卡小屋

✨ 打卡小屋旨在陪伴大家,养成每日学习的好习惯。在这里,你可以:
- 🤝 与备战笔试的小伙伴相识,找到志同道合的学习小组
- 📝 通过写题解,巩固做题思路,养成良好的记录习惯
- 💡 系统掌握常考算法和数据结构,了解互联网笔试难度
- 🎁 坚持打卡,获得丰厚奖励,激励自己持之以恒
🥰 打卡奖励
| 打卡时长 | 奖励内容 |
|---|---|
| 7天 | 任选一家最新互联网笔试真题 x 1 (价值29.9r) |
| 14天 | 任选一家最新互联网笔试真题 x 3 + 笔试面试经验贴 |
| 21天 | 任选一家最新互联网笔试真题 x 5 + 清隆三语言算法模版 |
| 28天 | 最新互联网大厂笔试真题汇总(价值199r) + 华为OD机试训练营 (价值89r) |
7天打卡即可值回票价,心动不如行动!
🕰 每日学习安排
小屋将在每日上午发放打卡题目,包括:
- 一道算法模版题,帮助大家掌握常用算法套路
- 根据算法模版,精选一道对应的大厂笔试真题,巩固算法应用
让我们一起直击笔试重点,攻克常考题型!
📖 打卡小屋涉及题型
小屋从零基础出发,涵盖笔试常考知识点:
基础算法
- 自定义排序
- 二分
- 前缀和
- 差分
- 双指针
基础数据结构
- 栈 & 单调栈
- 队列 & 单调队列
- 并查集
- 优先队列(堆)
搜索
- DFS & BFS 基础应用
- 树的遍历
- 基础图论
动态规划 & 贪心 & 数论
- 快速幂
- 组合数
- 质数 & 因数
- 位运算
- 基础动态规划
- 常见贪心

相关文章:
【秋招突围】2024届秋招笔试-小红书笔试题-第一套-三语言题解(Java/Cpp/Python)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系计划跟新各公司春秋招的笔试题 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📧 清隆这边…...
HAL库开发--STM32的HAL环境搭建
知不足而奋进 望远山而前行 目录 文章目录 前言 下载 安装 解压 安装 添加开发包 修改仓库路径 下载软件开发包(慢,不推荐) 解压已有软件开发包(快,推荐) 总结 前言 在嵌入式系统开发中&#x…...
【DPDK学习路径】七、创建RX/TX队列
上一节我们讲述了如何申请内存池缓冲区以便接下来创建 RX 队列,这一节我们将给出具体如何创建 RX/TX 队列。 在 DPDK 中提供了 rte_eth_rx_queue_setup 及 rte_eth_tx_queue_setup 这两个接口用于接收/发送队列的创建。 下面给出一个为各个网卡创建RX/TX 队列的实例…...
【ArcGISProSDK】OpenItemDialog打开文件对话框
打开单个文件 效果 代码 public async void OpenFunction() {// 获取默认数据库var gdbPath Project.Current.DefaultGeodatabasePath;OpenItemDialog openItemDialog new OpenItemDialog() { Title "打开要素文件",InitialLocation gdbPath,Filter ItemFilte…...
TensorFlow2.x基础与mnist手写数字识别示例
文章目录 Github官网文档Playground安装声明张量常量变量 张量计算张量数据类型转换张量数据维度转换ReLU 函数Softmax 函数卷积神经网络训练模型测试模型数据集保存目录显示每层网络的结果 TensorFlow 是一个开源的深度学习框架,由 Google Brain 团队开发和维护。它…...
大数据开发语言Scala入门
Scala是一种多范式编程语言,它集成了面向对象编程和函数式编程的特性。Scala运行在Java虚拟机上,并且可以与Java代码无缝交互,这使得它成为大数据处理和分析领域中非常受欢迎的语言,尤其是在使用Apache Spark这样的框架时。 Scal…...
【CDN】逆天 CDN !BootCDN 向 JS 文件中植入恶意代码
今天在调试代码,突然控制台出现了非常多报错。 这非常可疑,报错指向的域名也证实了这一点。 因为我的 HTML 中只有一个外部开源库(qrcode.min.js),因此只有可能是它出现了问题。 我翻看了请求记录,发现这…...
摆脱Jenkins - 使用google cloudbuild 部署 java service 到 compute engine VM
在之前 介绍 cloud build 的文章中 初探 Google 云原生的CICD - CloudBuild 已经介绍过, 用cloud build 去部署1个 spring boot service 到 cloud run 是很简单的, 因为部署cloud run 无非就是用gcloud 去部署1个 GAR 上的docker image 到cloud run 容…...
【CS.PL】Lua 编程之道: 控制结构 - 进度24%
3 初级阶段 —— 控制结构 文章目录 3 初级阶段 —— 控制结构3.1 条件语句:if、else、elseif3.2 循环语句:for、while、repeat-until3.2.1 输出所有的命令行参数3.2.2 while.lua3.2.3 repeat.lua及其作用域 🔥3.2.4 for.lua (For Statement)…...
从“数据孤岛”、Data Fabric(数据编织)谈逻辑数据平台
提到逻辑数据平台,其核心在于“逻辑”,与之相对的便是“物理”。在过去,为了更好地利用和管理数据,我们通常会选择搭建数据仓库和数据湖,将所有数据物理集中起来。但随着数据量、用数需求和用数人员的持续激增…...
vuex4.x 升级pinia,router 中使用同步组件导致项目启动失败
背景描述 升级的项目本来是vue2的项目,先升级成vue3,这个过程相关的问题都被决绝,当时状态管理使用的还是vuex4.x版本。 后面发现变成复杂模块时,后续再对复杂模块的功能进行迭代时,由于js的弱类型,改动时…...
0. 云原生之基于乌班图远程开发
云原生专栏大纲 文章目录 安装乌班图配置静态IP重置root密码开启root远程登录开启远程SSH访问安装docker安装docker-compose安装Edge浏览器安装搜狗输入法安装TeamViewer安装虚拟显示器安装JDK安装maven安装vscodevscode插件安装VSCode配置maven、git、jdk、自动报错vscode快捷…...
C++ 字符串处理5-手机号邮箱如何脱敏处理
1. 关键词2. strutil.h3. strutil.cpp4. 测试代码5. 运行结果6. 源码地址 1. 关键词 关键词: C 字符串处理 分割字符串 连接字符串 跨平台 应用场景: 有些重要信息需要保密,比如手机号、邮箱等,如何在不影响用户阅读的情况下…...
【lesson8】云备份服务端完整版代码
文章目录 util.hppconfig.hpphot.hppdata.hppserver.hppserver.ccMakefilecloud.conf util.hpp #pragma once #include <iostream> #include <fstream> #include <string> #include <vector> #include <sys/stat.h> #include <unistd.h> …...
AI办公自动化:kimi批量搜索提取PDF文档中特定文本内容
工作任务:PDF文档中有资料来源这一行,比如: 资料来源:moomoo tech、The Information、Bloomberg、Reuters,浙商证券研究所 数据来源:CSDN、浙商证券研究所 数据来源:CSDN、arXiv、浙商证券研…...
基于C#开发web网页管理系统模板流程-总集篇
第一篇 基于C#开发web网页管理系统模板流程-登录界面和主界面_c#的网页编程-CSDN博客 第二篇 基于C#开发web网页管理系统模板流程-主界面管理员录入和编辑功能完善_c#网页设计-CSDN博客 第三篇 基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善_c#web程序设计…...
什么是DMZ?路由器上如何使用DMZ?
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 DMZ 📒🚀 DMZ的应用场景💡 路由器设置DMZ🎈 注意事项 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在网络管理中,DMZ(Demilitarized Zone,隔离区)是一个特殊的网络区域,常用于将公共访问和内部网络隔离开来。DMZ功能允许…...
【bugfix】解决Redis缓存键清理问题
前言 在Spring Boot应用中集成Redis作为缓存存储时,合理配置RedisTemplate是确保数据正确存储和检索的关键。本文将通过对比分析一段初始存在问题的Redis配置代码及其修正后的版本,探讨如何正确处理Redis键前缀,以避免清理缓存时遇到的问题。…...
泛微开发修炼之旅--15后端开发连接外部数据源,实现在ecology系统中查询其他异构系统数据库得示例和源码
文章链接:15后端开发连接外部数据源,实现在ecology系统中查询其他异构系统数据库得示例和源码...
弹幕逆向signature、a_bogus
声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许可禁止转载&a…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
AT模式下的全局锁冲突如何解决?
一、全局锁冲突解决方案 1. 业务层重试机制(推荐方案) Service public class OrderService {GlobalTransactionalRetryable(maxAttempts 3, backoff Backoff(delay 100))public void createOrder(OrderDTO order) {// 库存扣减(自动加全…...
【Axure高保真原型】图片列表添加和删除图片
今天和大家分享图片列表添加和删除图片的原型模板,效果包括: 点击图片列表的加号可以显示图片选择器,选择里面的图片; 选择图片后点击添加按钮,可以将该图片添加到图片列表; 鼠标移入图片列表的图片&…...
