【华为笔试题汇总】2024-04-17-华为春招笔试题-三语言题解(Python/Java/Cpp)

🍭 大家好这里是KK爱Coding ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为近期的春秋招笔试题汇总~

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。

文章目录

    • 🔮01.扑克牌消消乐
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
    • ⚗️02.公司部门风险评估
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
    • 🎀 03.城市应急疏散
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
    • 写在最后
    • 📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。

本次华为的笔试不算难哦,虽然考试的时候题目长了点,但总体代码和思维量都不大

🔮01.扑克牌消消乐

题目描述

K小姐最近沉迷于一款扑克牌消除游戏。游戏规则如下:从一副扑克牌中随机抽取 n n n 张牌组成一个序列,如果有连续的 3 3 3 张相同牌号的卡牌,则这 3 3 3 张卡牌可以消除。消除后,剩余卡牌按照当前顺序重新合并成新的序列,继续寻找可以消除的卡牌组合,直到无法再消除为止。

需要注意的是,如果存在连续的 4 4 4 张相同牌号的卡牌,在消除后会剩余 1 1 1 张该牌号的卡牌。

现在,K小姐想知道最后剩余的卡牌序列是什么样的,你能帮助她吗?

输入格式

第一行包含一个正整数 n n n 1 ≤ n ≤ 52 1 \leq n \leq 52 1n52),表示抽取的卡牌数量。

第二行包含 n n n 个以空格分隔的字符串,表示抽取的卡牌序列,卡牌号仅包含 2 2 2- 10 10 10 A A A J J J Q Q Q K K K

输出格式

输出一个字符串,表示最终剩余的卡牌号序列,卡牌号之间以空格分隔。如果最终没有卡牌剩余,则输出 0 0 0

样例输入

10
3 A 2 2 2 A A 7 7 7

样例输出

3

数据范围

  • 1 ≤ n ≤ 52 1 \leq n \leq 52 1n52
  • 卡牌号仅包含 2 2 2- 10 10 10 A A A J J J Q Q Q K K K

题解

这是一道模拟题,可以使用栈来模拟卡牌的消除过程。具体步骤如下:

  1. 将输入的卡牌序列依次放入栈中。
  2. 在放入每张卡牌时,检查栈顶是否存在与当前卡牌相同的牌号。
    • 如果存在,则统计相同牌号的数量,直到栈顶的卡牌牌号不同或栈为空为止。
    • 如果相同牌号的数量等于 3 3 3,则将这 3 3 3 张卡牌从栈中弹出。
  3. 重复步骤 2 2 2,直到所有卡牌都放入栈中。
  4. 最后,将栈中剩余的卡牌依次输出,如果栈为空,则输出 0 0 0

时间复杂度为 O ( n ) O(n) O(n),空间复杂度为 O ( n ) O(n) O(n)

参考代码

  • Python
n = int(input())
cards = input().split()
stack = []for card in cards:stack.append(card)while len(stack) >= 3 and stack[-1] == stack[-2] == stack[-3]:for _ in range(3):stack.pop()if not stack:print(0)
else:print(' '.join(stack))
  • Java
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();String[] cards = new String[n];for (int i = 0; i < n; i++) {cards[i] = sc.next();}List<String> stack = new ArrayList<>();for (String card : cards) {stack.add(card);int size = stack.size();while (size >= 3 && stack.get(size - 1).equals(stack.get(size - 2)) && stack.get(size - 2).equals(stack.get(size - 3))) {for (int i = 0; i < 3; i++) {stack.remove(size - 1);size--;}}}if (stack.isEmpty()) {System.out.println(0);} else {System.out.println(String.join(" ", stack));}}
}
  • Cpp
#include <iostream>
#include <vector>
#include <string>using namespace std;int main() {int n;cin >> n;vector<string> cards(n);for (int i = 0; i < n; i++) {cin >> cards[i];}vector<string> stack;for (string card : cards) {stack.push_back(card);int size = stack.size();while (size >= 3 && stack[size - 1] == stack[size - 2] && stack[size - 2] == stack[size - 3]) {for (int i = 0; i < 3; i++) {stack.pop_back();size--;}}}if (stack.empty()) {cout << 0 << endl;} else {for (int i = 0; i < stack.size(); i++) {cout << stack[i] << " \n"[i == stack.size() - 1];}}return 0;
}

⚗️02.公司部门风险评估

题目描述

LYA 是一家大型科技公司的风险评估师。公司的部门结构可以看作一棵树,每个部门在评估前都有一些尚未解决的问题。部门的风险值可以用来评估该部门是否存在风险,风险值的计算公式为: 风险值 = 5 × 严重问题数 + 2 × 一般问题数 风险值 = 5 \times 严重问题数 + 2 \times 一般问题数 风险值=5×严重问题数+2×一般问题数

其中,每个部门的不同级别问题数量需要将该部门及其下属部门的相应级别问题数量求和。当部门的风险值小于等于给定的阈值时,该部门被认为是安全的;否则,该部门被视为风险部门,需要进一步整改。

现在给出公司的部门结构以及各部门的问题数量,请你帮助 LYA 计算出风险部门的数量。

输入格式

第一行包含两个正整数 M M M N N N 1 ≤ M ≤ 100000 1 \leq M \leq 100000 1M100000 1 ≤ N ≤ 1000 1 \leq N \leq 1000 1N1000),分别表示风险阈值和部门的数量。

接下来 N N N 行,每行包含四个字段,用空格分隔:

  • 第一个字段为部门名称 A i A_i Ai
  • 第二个字段为 A i A_i Ai 的上级部门名称 B i B_i Bi,如果 A i A_i Ai 为公司的最高层部门,则 B i B_i Bi* 表示;
  • 第三个字段为问题级别 C i C_i Ci C i ∈ { 0 , 1 } C_i \in \{0, 1\} Ci{0,1},其中 0 0 0 表示严重问题, 1 1 1 表示一般问题);
  • 第四个字段为该部门该级别的问题数量 D i D_i Di 1 ≤ D i ≤ 1000 1 \leq D_i \leq 1000 1Di1000)。

其中, A i A_i Ai B i B_i Bi 为由小写英文字母组成的字符串,长度不超过 5 5 5

输入保证部门结构为一棵树,不会出现环的情况。

输出格式

输出一个整数,表示风险部门的数量。

样例输入

40 12
a * 0 2
a * 1 2
b a 0 3
b a 1 5
c a 1 3
d a 0 1
d a 1 3
e b 0 2
f * 0 8
f * 1 10
g f 1 2
h * 0 4

样例输出

2

数据范围

  • 1 ≤ M ≤ 100000 1 \leq M \leq 100000 1M100000
  • 1 ≤ N ≤ 1000 1 \leq N \leq 1000 1N1000
  • 1 ≤ D i ≤ 1000 1 \leq D_i \leq 1000 1Di1000
  • A i A_i Ai B i B_i Bi 为由小写英文字母组成的字符串,长度不超过 5 5 5

题解

本题可以使用树形 DP 的思想来解决。可以从叶子节点开始,自底向上计算每个部门的严重问题数和一般问题数,然后根据风险值的计算公式判断该部门是否为风险部门。

具体步骤如下:

  1. 建立部门之间的父子关系,使用邻接表或者邻接矩阵来存储。
  2. 对于每个部门,初始化其严重问题数和一般问题数。
  3. 从叶子节点开始,通过 DFS 或 BFS 遍历整棵树,对于每个部门:
    • 将其子部门的严重问题数和一般问题数累加到当前部门上。
    • 计算当前部门的风险值,并判断是否超过阈值,如果超过则将风险部门数量加 1 1 1
  4. 输出风险部门的数量。

时间复杂度为 O ( N ) O(N) O(N),空间复杂度为 O ( N ) O(N) O(N),其中 N N N 为部门的数量。

参考代码

  • Python
from collections import defaultdictdef dfs(dept):risk1, risk2 = risks1[dept], risks2[dept]for sub in graph[dept]:sub_risk1, sub_risk2 = dfs(sub)risk1 += sub_risk1risk2 += sub_risk2return risk1, risk2m, n = map(int, input().split())
graph = defaultdict(list)
risks1 = defaultdict(int)
risks2 = defaultdict(int)roots = set()
for _ in range(n):dept, parent, level, num = input().split()num = int(num)if parent == '*':roots.add(dept)else:graph[parent].append(dept)if level == '0':risks1[dept] = numelse:risks2[dept] = numcnt = 0
for root in roots:risk1, risk2 = dfs(root)if 5 * risk1 + 2 * risk2 > m:cnt += 1print(cnt)
  • Java
import java.util.*;public class Main {static Map<String, List<String>> graph = new HashMap<>();static Map<String, Integer> risks1 = new HashMap<>();static Map<String, Integer> risks2 = new HashMap<>();public static void main(String[] args) {Scanner sc = new Scanner(System.in);int m = sc.nextInt();int n = sc.nextInt();sc.nextLine();Set<String> roots = new HashSet<>();for (int i = 0; i < n; i++) {String[] input = sc.nextLine().split(" ");String dept = input[0];String parent = input[1];int level = Integer.parseInt(input[2]);int num = Integer.parseInt(input[3]);if (parent.equals("*")) {roots.add(dept);} else {graph.computeIfAbsent(parent, k -> new ArrayList<>()).add(dept);}if (level == 0) {risks1.put(dept, num);} else {risks2.put(dept, num);}}int cnt = 0;for (String root : roots) {int[] risks = dfs(root);if (5 * risks[0] + 2 * risks[1] > m) {cnt++;}}System.out.println(cnt);}private static int[] dfs(String dept) {int risk1 = risks1.getOrDefault(dept, 0);int risk2 = risks2.getOrDefault(dept, 0);for (String sub : graph.getOrDefault(dept, new ArrayList<>())) {int[] subRisks = dfs(sub);risk1 += subRisks[0];risk2 += subRisks[1];}return new int[]{risk1, risk2};}
}
  • Cpp
#include <iostream>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <string>using namespace std;unordered_map<string, vector<string>> graph;
unordered_map<string, int> risks1;
unordered_map<string, int> risks2;pair<int, int> dfs(const string& dept) {int risk1 = risks1[dept];int risk2 = risks2[dept];for (const string& sub : graph[dept]) {auto subRisks = dfs(sub);risk1 += subRisks.first;risk2 += subRisks.second;}return {risk1, risk2};
}int main() {int m, n;cin >> m >> n;unordered_set<string> roots;for (int i = 0; i < n; i++) {string dept, parent;int level, num;cin >> dept >> parent >> level >> num;if (parent == "*") {roots.insert(dept);} else {graph[parent].push_back(dept);}if (level == 0) {risks1[dept] = num;} else {risks2[dept] = num;}}int cnt = 0;for (const string& root : roots) {auto risks = dfs(root);if (5 * risks.first + 2 * risks.second > m) {cnt++;}}cout << cnt << endl;return 0;
}

🎀 03.城市应急疏散

题目描述

LYA 是一名城市应急管理专家,她负责制定城市在发生重大事故时的疏散计划。城市由 n n n 个区域组成,每个区域之间都有道路相连。当某个区域发生事故需要疏散时,LYA 需要选择一个或多个安全区域作为疏散目的地,并确保疏散路径的总长度最短。

给定一个 n × n n \times n n×n 的矩阵 d i s t dist dist,其中 d i s t [ i ] [ j ] dist[i][j] dist[i][j] 表示区域 i i i 到区域 j j j 的道路长度,如果 d i s t [ i ] [ j ] = − 1 dist[i][j] = -1 dist[i][j]=1,则表示区域 i i i 和区域 j j j 之间没有直接相连的道路。另外,每个区域还有一个剩余容量 c a p [ i ] cap[i] cap[i],表示该区域最多可以容纳的人数。

当某个区域 x x x 发生事故需要疏散人数为 p p p 时,请你帮助 LYA 选择疏散区域,使得疏散路径的总长度最短,并且疏散区域的剩余容量之和不小于 p p p。如果有多个疏散区域到事故区域的最短路径长度相同,则优先选择编号较小的区域。

输入格式

第一行包含一个正整数 n n n,表示区域的数量。

接下来 n n n 行,每行包含 n n n 个整数,表示矩阵 d i s t dist dist

接下来一行包含 n n n 个整数,表示每个区域的剩余容量 c a p [ i ] cap[i] cap[i]

最后一行包含两个整数 x x x p p p,分别表示发生事故的区域编号和需要疏散的人数。

输出格式

输出一行,包含若干个整数,表示选择的疏散区域编号。如果有多个疏散区域到事故区域的最短路径长度相同,则按照编号从小到大的顺序输出。

样例输入

4
-1 5 -1 8
5 -1 1 3
-1 1 -1 4
8 3 4 -1
10 20 15 25
2 12

样例输出

1

数据范围

  • 2 ≤ n ≤ 1 0 4 2 \leq n \leq 10^4 2n104
  • − 1 ≤ d i s t [ i ] [ j ] ≤ 1000 -1 \leq dist[i][j] \leq 1000 1dist[i][j]1000
  • 1 ≤ c a p [ i ] ≤ 100 1 \leq cap[i] \leq 100 1cap[i]100
  • 0 ≤ x < n 0 \leq x < n 0x<n
  • 0 < p ≤ 1000 0 < p \leq 1000 0<p1000

题解

本题可以使用 Dijkstra 算法求出事故区域到其他所有区域的最短路径长度,然后将区域按照最短路径长度从小到大排序,依次选择区域作为疏散目的地,直到选择的区域剩余容量之和不小于需要疏散的人数为止。

具体步骤如下:

  1. 使用 Dijkstra 算法求出事故区域到其他所有区域的最短路径长度,记为 d [ i ] d[i] d[i]
  2. 将区域按照 ( d [ i ] , c a p [ i ] , i ) (d[i], cap[i], i) (d[i],cap[i],i) 的顺序从小到大排序,其中 d [ i ] d[i] d[i] 为最短路径长度, c a p [ i ] cap[i] cap[i] 为剩余容量, i i i 为区域编号。
  3. 依次选择排序后的区域作为疏散目的地,直到选择的区域剩余容量之和不小于需要疏散的人数为止。
  4. 输出选择的疏散区域编号。

时间复杂度 O ( n 2 + n log ⁡ n ) O(n^2 + n \log n) O(n2+nlogn),空间复杂度 O ( n 2 ) O(n^2) O(n2)。其中 n n n 为区域的数量。

参考代码

  • Python
import heapqn = int(input())
dist = [list(map(int, input().split())) for _ in range(n)]
cap = list(map(int, input().split()))
x, p = map(int, input().split())for i in range(n):for j in range(n):if dist[i][j] == -1:dist[i][j] = float('inf')d = [float('inf')] * n
d[x] = 0
q = [(0, x)]while q:_, u = heapq.heappop(q)for v in range(n):if d[u] + dist[u][v] < d[v]:d[v] = d[u] + dist[u][v]heapq.heappush(q, (d[v], v))regions = sorted([(d[i], cap[i], i) for i in range(n) if i != x])ans = []
total_cap = 0
for _, c, i in regions:if total_cap >= p:breakans.append(i)total_cap += cprint(*ans)
  • Java
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[][] dist = new int[n][n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {dist[i][j] = sc.nextInt();if (dist[i][j] == -1) {dist[i][j] = Integer.MAX_VALUE;}}}int[] cap = new int[n];for (int i = 0; i < n; i++) {cap[i] = sc.nextInt();}int x = sc.nextInt();int p = sc.nextInt();int[] d = new int[n];Arrays.fill(d, Integer.MAX_VALUE);d[x] = 0;PriorityQueue<int[]> q = new PriorityQueue<>((a, b) -> a[0] - b[0]);q.offer(new int[]{0, x});while (!q.isEmpty()) {int[] curr = q.poll();int u = curr[1];for (int v = 0; v < n; v++) {if (d[u] + dist[u][v] < d[v]) {d[v] = d[u] + dist[u][v];q.offer(new int[]{d[v], v});}}}List<int[]> regions = new ArrayList<>();for (int i = 0; i < n; i++) {if (i != x) {regions.add(new int[]{d[i], cap[i], i});}}regions.sort((a, b) -> {if (a[0] != b[0]) {return a[0] - b[0];}if (a[1] != b[1]) {return b[1] - a[1];}return a[2] - b[2];});List<Integer> ans = new ArrayList<>();int totalCap = 0;for (int[] region : regions) {if (totalCap >= p) {break;}ans.add(region[2]);totalCap += region[1];}for (int i = 0; i < ans.size(); i++) {System.out.print(ans.get(i));if (i < ans.size() - 1) {System.out.print(" ");}}}
}
  • Cpp
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;const int INF = 0x3f3f3f3f;int main() {int n;cin >> n;vector<vector<int>> dist(n, vector<int>(n));for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cin >> dist[i][j];if (dist[i][j] == -1) {dist[i][j] = INF;}}}vector<int> cap(n);for (int i = 0; i < n; i++) {cin >> cap[i];}int x, p;cin >> x >> p;vector<int> d(n, INF);d[x] = 0;priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q;q.emplace(0, x);while (!q.empty()) {auto [du, u] = q.top();q.pop();if (du > d[u]) {continue;}for (int v = 0; v < n; v++) {if (d[u] + dist[u][v] < d[v]) {d[v] = d[u] + dist[u][v];q.emplace(d[v], v);}}}vector<tuple<int, int, int>> regions;for (int i = 0; i < n; i++) {if (i != x) {regions.emplace_back(d[i], cap[i], i);}}sort(regions.begin(), regions.end());vector<int> ans;int total_cap = 0;for (auto [di, ci, i] : regions) {if (total_cap >= p) {break;}ans.push_back(i);total_cap += ci;}for (int i = 0; i < ans.size(); i++) {cout << ans[i];if (i < ans.size() - 1) {cout << " ";}}cout << endl;return 0;
}

写在最后

📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/823687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云优惠券介绍及领取教程详解

腾讯云是腾讯集团倾力打造的云计算品牌&#xff0c;提供全球领先的云计算、大数据、人工智能等技术产品与服务&#xff0c;以卓越的科技能力打造丰富的行业解决方案&#xff0c;构建开放共赢的云端生态&#xff0c;推动产业互联网建设&#xff0c;助力各行各业实现数字化升级。…

Python景区票务人脸识别系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

LeetCode236:二叉树的最近公共祖先

题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是…

YOLOv8 测试 5:Linux 中 Docker 部署 YOLOv8,Python 封装 API 接口,base64 图片处理

一、前言 记录时间 [2024-4-14] 系列文章简摘&#xff1a; Docker 学习笔记&#xff08;二&#xff09;&#xff1a;在 Linux 中部署 Docker&#xff08;Centos7 下安装 docker、环境配置&#xff0c;以及镜像简单使用&#xff09; API 接口简单使用&#xff08;二&#xff09;…

Zabbix监控内容

目录 一、自定义监控内容 1、在客户端创建自定义key 1.1明确需要执行的linux命令 1.2创建zabbix监控项配置文件&#xff0c;用于自定义Key 1.3服务端验证测试 2、在Web界面创建自定义监控模板 2.1创建模板 2.2创建应用集&#xff08;用于管理监控项&#xff09; 2.3创建…

python-获取config.ini中的属性值

获取配置文件中的数据 import configparser class ReadConfig(object):def __init__(self,config_file_path):self.config configparser.ConfigParser()self.config.read(config_file_path,encodingutf-8)def get_config(self,section,option):config_valueself.config.get(s…

牛客NC197 跳跃游戏(一)【中等 动态规划 Java、Go、PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/23407eccb76447038d7c0f568370c1bd 思路 答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] [i]&#xff0c; 有一个maxReach&#xff0c;遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReac…

进位制之间相互转换:二进制<=>八进制

示例&#xff1a; /*** brief how about carry-bin-otc? show you here.* author wenxuanpei* email 15873152445163.com(query for any question here)*/ #define _CRT_SECURE_NO_WARNINGS//support c-library in Microsoft-Visual-Studio #include <stdio.h> #inc…

Python可视化-matplotlib用法详解(三)

一、子图绘制 # 上节课复习 import pandas as pd import matplotlib.pyplot as plt s../../data/unrate.csvunrate pd.read_csv(s) unrate[DATE] pd.to_datetime(unrate[DATE]) first_twelve unrate[0:12] first_twelveDATEVALUE01948-01-013.411948-02-013.821948-03-014.…

【测试开发学习历程】python常用的模块(下)

目录 8、MySQL数据库的操作-pymysql 8.1 连接并操作数据库 9、ini文件的操作-configparser 9.1 模块-configparser 9.2 读取ini文件中的内容 9.3 获取指定建的值 10 json文件操作-json 10.1 json文件的格式或者json数据的格式 10.2 json.load/json.loads 10.3 json.du…

【八股】Redisson分布式锁

Redisson分布式锁 主要了解了Redisson分布式锁实现的三个功能&#xff1a; 1.可重入 -> 防止死锁 2.可重试&#xff08;i.e. 非阻塞获取锁&#xff09; 3.自动续约 1. 可重入 原理&#xff1a; 利用Redis的Hash结构&#xff0c;记录了使用当前锁的线程id和重用次数&#…

Linux系统——Elasticsearch企业级日志分析系统

目录 前言 一、ELK概述 1.ELK简介 2.ELK特点 3.为什么要使用ELK 4.完整日志系统基本特征 5.ELK工作原理 6.Elasticsearch介绍 6.1Elasticsearch概述 6.2Elasticsearch核心概念 7.Logstash介绍 7.1Logstash简介 7.2Logstash主要组件 8.Kibana介绍 8.1Kibana简介 …

考研数学|「基础」和「强化」阶段分别怎么做?

从目前考研数学的趋势来看&#xff0c;更加注重数学基础的理解和计算量。也就是基础知识和计算&#xff0c;如何锻炼这两种能力就显得尤为重要。希望我的复习经验可以给到读者一些启发。 数学规划 从备考过程来看&#xff0c;数学的复习可以分为三个阶段&#xff1a;1、基础阶…

监控系统Prometheus--与第三方框架集成

文章目录 Prometheus和Flink集成拷贝jar包修改Flink配置为了运行测试程序&#xff0c;启动netcat启动hdfs、yarn&#xff0c;提交flink任务到yarn上可以通过8088跳到flinkUI的job页面&#xff0c;查看指标统计刷新Prometheus页面&#xff0c;如果有flink指标&#xff0c;集成成…

linux线程的同步

目录 1.死锁概念 2.接口 3.代码展示 1.死锁概念 死锁的四个必要条件&#xff08;必须同时满足&#xff09;&#xff1a; 1.互斥条件&#xff1a;一个资源每次只能被一个执行流使用&#xff08;前提&#xff09;。 2.请求与保持条件&#xff1a;一个执行流因请求资源而堵塞…

如何查看Postman的版本信息?

如何查看Postman的版本信息 一、为何需要查看版本信息&#xff1f;二、查看Postman的版本信息的步骤 一、为何需要查看版本信息&#xff1f; 不同的版本之间可能存在功能和界面的差异。 二、查看Postman的版本信息的步骤 1、打开 Postman 2、打开设置项 点击页面右上角的 “…

Spring-tx事务管理

第五章 Spring声明式事务 一 声明式事务概念 1.1 编程式事务 手动编写程序来管理事务&#xff0c;即通过编写代码的方式来实现事务的提交&#xff0c;和回滚。 1.2 声明式事务 声明式事务是指使用注解或配置文件来控制事务的提交和回滚。 开发者只需要添加注解或者配置文…

陇剑杯 流量分析 webshell CTF writeup

陇剑杯 流量分析 链接&#xff1a;https://pan.baidu.com/s/1KSSXOVNPC5hu_Mf60uKM2A?pwdhaek 提取码&#xff1a;haek目录结构 LearnCTF ├───LogAnalize │ ├───linux简单日志分析 │ │ linux-log_2.zip │ │ │ ├───misc日志分析 │ │ …

[SWPUCTF 2021 新生赛]error

如果 flag 只出现一半&#xff0c;用substr(A,B,C) 查询flag 1 and (select extractvalue(1,concat(~,(select substr((select flag from test_tb), 1 , 31))))) # 0-30位 左边30位 1and (select extractvalue(1,concat(~,(select substr((select flag from test_tb), 31 , 6…

vivado 设置 VIO 核以执行测量、查看 VIO 核状态

设置 VIO 核以执行测量 您添加到自己的设计中的 VIO 核会显示在“硬件 (Hardware) ”窗口中的目标器件下。如果未显示这些 VIO 核 &#xff0c; 请右键 单击器件并选择“ Refresh Hardware ”。这样将重新扫描 FPGA 或 ACAP 并刷新“ Hardware ”窗口。 注释 &#xff…