【拼多多笔试题汇总】2024-05-09-拼多多春招笔试题-三语言题解(Cpp/Java/Python)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

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

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

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

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

文章目录

    • ☀️ 01.汉堡王优惠活动
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
    • 🌤 02.二进制字符串的十进制值
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
    • ⛅️ 03.字符串消消乐
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 样例解释
      • 数据范围
      • 题解
      • 参考代码
    • ☁️ 04.魔法秘境
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
    • 写在最后
    • 📧 清隆这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 清隆领取,会在飞书进行同步的跟新。

☀️ 01.汉堡王优惠活动

问题描述

K小姐最喜欢到多哆村的金哆炸鸡店吃汉堡,每个汉堡原价 10 10 10 元。为了回馈老顾客,炸鸡店开展了拼团活动:每找到一个朋友一起购买,就可以减少 1 1 1 元,但价格最低只能降到 5 5 5 元(否则就要亏本啦)。

现在 K小姐 手上有 N N N 元钱,同时有 M M M 个朋友也想吃汉堡。K小姐 想知道自己最多能买多少个汉堡,以及在买最多汉堡的情况下最少要花多少钱。

输入格式

第一行包含一个正整数 T T T,表示测试用例的数量。

接下来 T T T 行,每行包含两个正整数 N N N M M M,分别表示 K小姐 的钱数以及一起购买汉堡的朋友数量。

输出格式

对于每组测试用例,输出一行,包含两个整数,分别表示 K小姐 能购买的最多汉堡数量,以及购买最多汉堡时最少需要花的钱数。

样例输入

3
100 0
20 18
5 3

样例输出

10 100
3 16
0 0

数据范围

  • 1 ≤ T ≤ 100 1 \leq T \leq 100 1T100
  • 1 ≤ N ≤ 100050 1 \leq N \leq 100050 1N100050
  • 0 ≤ M ≤ 1000 0 \leq M \leq 1000 0M1000

题解

本题的关键是判断能够凑成多少个优惠价 5 5 5 元的汉堡。

首先,我们可以计算出朋友数量可以凑成的 5 5 5 元汉堡个数 t t t,以及凑成这些汉堡后剩余的朋友数量 m m m

如果 t t t 5 5 5 元汉堡的总价格超过了 K小姐 的钱数 N N N,那么最多只能买 ⌊ N 5 ⌋ \lfloor \frac{N}{5} \rfloor 5N 个汉堡,花费 5 × ⌊ N 5 ⌋ 5 \times \lfloor \frac{N}{5} \rfloor 5×5N 元。

否则,在买完 t t t 5 5 5 元汉堡后,如果剩下的钱加上剩余的朋友数量可以再凑成一个 10 − m 10-m 10m 元的汉堡,那么就再买一个,并将剩下的钱按照 10 10 10 元一个汉堡的价格继续购买。如果不能凑成 10 − m 10-m 10m 元的汉堡,那么最多就只能买 t t t 个汉堡,花费 5 × t 5 \times t 5×t 元。

参考代码

  • Python
T = int(input())def solve():n, m = map(int, input().split())t = m // 5  # 5元汉堡个数m %= 5if t * 5 > n:print(n // 5, (n // 5) * 5)else:n -= t * 5if n >= 10 - m:n -= (10 - m)print(t + 1 + (n // 10), t * 5 + 10 - m + (n // 10) * 10)else:print(t, t * 5)for _ in range(T):solve()
  • Java
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int T = sc.nextInt();while (T-- > 0) {solve(sc);}}private static void solve(Scanner sc) {int n = sc.nextInt();int m = sc.nextInt();int t = m / 5;  // 5元汉堡个数m %= 5;if (t * 5 > n) {System.out.println((n / 5) + " " + ((n / 5) * 5));} else {n -= t * 5;if (n >= 10 - m) {n -= (10 - m);System.out.println((t + 1 + (n / 10)) + " " + (t * 5 + 10 - m + (n / 10) * 10));} else {System.out.println(t + " " + (t * 5));}}}
}
  • Cpp
#include <iostream>using namespace std;void solve() {int n, m;cin >> n >> m;int t = m / 5;  // 5元汉堡个数m %= 5;if (t * 5 > n) {cout << n / 5 << " " << (n / 5) * 5 << endl;} else {n -= t * 5;if (n >= 10 - m) {n -= (10 - m);cout << t + 1 + (n / 10) << " " << t * 5 + 10 - m + (n / 10) * 10 << endl;} else {cout << t << " " << t * 5 << endl;}}
}int main() {int T;cin >> T;while (T--) {solve();}return 0;
}

🌤 02.二进制字符串的十进制值

题目描述

K小姐特别喜欢二进制字符串。有一天,博学的 A 先生在迁居时遇到了 K 小姐,他准备考考她。

A先生每次会给K小姐一个长度为 n n n 的二进制字符串 s s s。他定义了一种新的子串 d i d_i di,作为十进制表示形式为 s [ i : i − 1 ] s[i:i-1] s[i:i1] 的数字(可能有前导零)。A 先生定义字符串的十进制值 f ( s ) f(s) f(s) 为所有有效的 d i d_i di 的总和,换句话说:

f ( s ) = ∑ i = 1 n − 1 d i f(s) = \sum_{i=1}^{n-1} d_i f(s)=i=1n1di

例如,对于字符串 s = 1101 s=1101 s=1101

  • d 1 = s [ 0 : 1 ] = 11 d_1 = s[0:1] = 11 d1=s[0:1]=11
  • d 2 = s [ 1 : 2 ] = 10 d_2 = s[1:2] = 10 d2=s[1:2]=10
  • d 3 = s [ 2 : 3 ] = 01 d_3 = s[2:3] = 01 d3=s[2:3]=01

因此, f ( s ) = 11 + 10 + 1 = 22 f(s) = 11 + 10 + 1 = 22 f(s)=11+10+1=22

A 先生允许 K 小姐每次可以交换字符串的任意两个相邻元素,最多可以进行 k k k 次操作。他问 K 小姐,在进行操作后,字符串的十进制值最小是多少。K 小姐喜欢分享,于是她邀请你一起解决这个问题。

输入格式

第一行包含一个整数 t t t,表示测试用例的数量。 ( 1 ≤ t ≤ 100 ) (1 \le t \le 100) (1t100)

对于每组测试用例:

  • 第一行包含两个整数 n n n k k k,分别表示字符串的长度和允许的最大操作数。 ( 2 ≤ n ≤ 1 0 5 , 0 ≤ k < 1 0 5 ) (2 \le n \le 10^5, 0 \le k < 10^5) (2n105,0k<105)
  • 第二行包含一个长度为 n n n,仅由 0 0 0 1 1 1 组成的二进制字符串 s s s

输出格式

对于每组测试用例,分别输出一行,每行一个整数,表示在最多可以进行 k k k 次操作后字符串的最小十进制值。

样例输入

2
5 0
10100
7 2
0010100

样例输出

21
12

数据范围

  • 1 ≤ t ≤ 100 1 \le t \le 100 1t100
  • 2 ≤ n ≤ 1 0 5 2 \le n \le 10^5 2n105
  • 0 ≤ k < 1 0 5 0 \le k < 10^5 0k<105

题解

观察可以发现中间部分的 ‘1’ 对答案的贡献不变,只有首尾的 ‘1’ 贡献会不一样,主要策略是尽量将 ‘1’ 移动到字符串的尾部,从而减少由 ‘1’ 产生的高权重。首先尝试将最后一个 ‘1’ 尽可能右移,如果剩余操作数还允许,再将第一个 ‘1’ 尽可能左移。这样可以最大程度减少 ‘1’ 的有效出现次数,从而降低总和。

参考代码

  • Python
def solve():n, k = map(int, input().split())s = input().strip()idx0 = s.find('1')idx1 = s.rfind('1')# Function to perform operation 0def op0(idx0):nonlocal kif idx0 == -1:returnwhile k > 0 and idx0 > 0:s_lst = list(s)s_lst[idx0], s_lst[idx0 - 1] = s_lst[idx0 - 1], s_lst[idx0]s = ''.join(s_lst)k -= 1idx0 -= 1# Function to perform operation 1def op1(idx1):nonlocal kif idx1 == -1:returnwhile k > 0 and idx1 < n - 1:s_lst = list(s)s_lst[idx1], s_lst[idx1 + 1] = s_lst[idx1 + 1], s_lst[idx1]s = ''.join(s_lst)k -= 1idx1 += 1if n - idx1 - 1 <= k:op1(idx1)op0(idx0)res = 0for i in range(n - 1):res += int(s[i:i + 2])print(res)T = int(input())
for _ in range(T):solve()
  • Java
import java.util.Scanner;public class Main {static void solve() {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int k = scanner.nextInt();String s = scanner.next();int idx0 = s.indexOf('1');int idx1 = s.lastIndexOf('1');// 操作0:将'1'向左移动Runnable op0 = () -> {if (idx0 == -1) return;while (k > 0 && idx0 > 0) {char temp = s.charAt(idx0);s.setCharAt(idx0, s.charAt(idx0 - 1));s.setCharAt(idx0 - 1, temp);k--;idx0--;}};// 操作1:将'1'向右移动Runnable op1 = () -> {if (idx1 == -1) return;while (k > 0 && idx1 < n - 1) {char temp = s.charAt(idx1);s.setCharAt(idx1, s.charAt(idx1 + 1));s.setCharAt(idx1 + 1, temp);k--;idx1++;}};if (n - idx1 - 1 <= k)op1.run();op0.run();int res = 0;for (int i = 0; i < n - 1; i++)res += Integer.parseInt(s.substring(i, i + 2));System.out.println(res);}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int T = scanner.nextInt();while (T-- > 0)solve();}
}
  • Cpp
#include <bits/stdc++.h>using namespace std;void solve() {int n, k;cin >> n >> k;string s;cin >> s;int idx0 = s.find('1');int idx1 = s.rfind('1');// Function to perform operation 0auto op0 = [&](int &idx0) {if (idx0 == -1) return;while (k && idx0) {swap(s[idx0], s[idx0 - 1]);k--;idx0--;}};// Function to perform operation 1auto op1 = [&](int &idx1) {if (idx1 == -1) return;while (k && idx1 < n - 1) {swap(s[idx1], s[idx1 + 1]);idx1++;k--;}};if (n - idx1 - 1 <= k)op1(idx1);op0(idx0);int res = 0;for (int i = 0; i < n - 1; i++)res += stoi(s.substr(i, 2));cout << res << "\n";
}int main() {int T;cin >> T;while (T--)solve();return 0;
}

⛅️ 03.字符串消消乐

问题描述

LYA 最近沉迷于一款字符串消除游戏。游戏开始时,LYA 会得到一个长度为 N N N 的仅由大小写字母构成的字符串 S S S

游戏中,LYA 可以重复执行以下操作:从 S S S 中删除最长且最靠左的连续相同字符构成的子串。

LYA 想知道,最少经过多少次操作后,能够将整个字符串 S S S 删除完全。

输入格式

第一行包含一个整数 N N N,表示字符串的长度 ( 1 ≤ N ≤ 100 , 000 ) (1 \leq N \leq 100,000) (1N100,000)

第二行包含一个字符串 S S S,表示游戏初始时的字符串。

输出格式

输出一个整数,表示将字符串完全删除所需的最少操作次数。

样例输入

4
aBBa

样例输出

2

样例解释

第一次操作,消除 BB,剩下的字符串为 aa
第二次操作,消除 aa

数据范围

1 ≤ N ≤ 100 , 000 1 \leq N \leq 100,000 1N100,000

题解

可以每次找到最长且最靠左的连续相同字符构成的子串,将其删除。重复这一过程,直到字符串为空。

具体实现时,可以维护一个集合,存储当前所有连续相同字符构成的子串的信息(子串长度、左右端点位置)。每次从集合中取出长度最大的子串删除,并更新相邻子串的信息。重复此过程,直到集合为空。

时间复杂度为 O ( N log ⁡ N ) O(N \log N) O(NlogN),其中 N N N 为字符串长度。空间复杂度为 O ( N ) O(N) O(N)

tips: 据说直接暴力replace也能过哦

参考代码

  • Cpp
#include <bits/stdc++.h>
using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(0);int n;cin >> n;string s;cin >> s;char last = s[0];int cnt = 1, left = 0;map<int, array<int, 3>> mpl, mpr;set<array<int, 3>> se;for (int i = 1; i < n; i++) {if (s[i] != last) {se.insert({-cnt, left, i - 1});mpl[left] = {i - 1, last, cnt};mpr[i - 1] = {left, last, cnt};left = i;cnt = 1;last = s[i];} else {cnt++;}}se.insert({-cnt, left, n - 1});mpl[left] = {n - 1, last, cnt};mpr[n - 1] = {left, last, cnt};int res = 0;while (!se.empty()) {auto fi = *se.begin();auto [cnt, l, r] = fi;char lc = mpr[l - 1][1];char rc = mpl[r + 1][1];if (lc == rc) {int lidx = mpr[l - 1][0];int ridx = mpl[r + 1][0];int lcnt = mpr[l - 1][2];int rcnt = mpl[r + 1][2];se.erase({-lcnt, lidx, l - 1});se.erase({-rcnt, r + 1, ridx});se.insert({-(lcnt + rcnt), lidx, ridx});mpl.erase(r + 1);mpr.erase(l - 1);mpl[lidx] = {ridx, lc};mpr[ridx] = {lidx, lc};}se.erase(fi);mpr.erase(l);mpl.erase(r);if (se.empty()) break;res++;}cout << res << "\n";return 0;
}

☁️ 04.魔法秘境

题目描述

LYA 在探索一片神秘的魔法领地时,发现了一个蕴含着强大魔法能量的秘境。这个秘境被划分为 n n n 个独特且连续的区域,其中第 i i i 个区域的魔法能量值为 x i x_i xi

为了最大化修炼效果,LYA 计划施展一个强大的结界覆盖一系列连续的区域。然而,施展结界需要消耗巨大的魔力,只有当连续被覆盖的区域数量至少达到 m m m 个时,施展结界才是划算的。

请你帮 LYA 计算出在结界覆盖的范围内,每个区域的魔法能量的平均值最大可以达到多少。结果四舍五入保留三位小数。

输入格式

第一行包含一个整数 T T T,表示测试用例的数量( 1 ≤ T ≤ 10 1 \leq T \leq 10 1T10)。

对于每组测试用例:
第一行为两个整数 n n n m m m,分别表示魔法区域的个数和结界至少需要笼罩的连续区域个数( 1 ≤ m ≤ n ≤ 1 0 5 1 \leq m \leq n \leq 10^5 1mn105)。
接下来的 n n n 行,每行一个整数 x i x_i xi,表示第 i i i 个区域的魔法能量值( 1 ≤ x i ≤ 5000 1 \leq x_i \leq 5000 1xi5000)。

输出格式

对于每组测试用例,输出一行,为结界覆盖范围内魔法能量的最大平均值,结果四舍五入保留三位小数。

样例输入

1
8 3
4
5
6
7
9
9
6
8

样例输出

8.333

数据范围

  • 1 ≤ T ≤ 10 1 \leq T \leq 10 1T10
  • 1 ≤ m ≤ n ≤ 1 0 5 1 \leq m \leq n \leq 10^5 1mn105
  • 1 ≤ x i ≤ 5000 1 \leq x_i \leq 5000 1xi5000

题解

本题可以使用二分答案的思路来解决。可以二分枚举平均值,判断是否存在一个长度至少为 m m m 的区间,使得区间内的平均值大于等于当前二分的值。

具体地,我们可以先求出数组的前缀和,然后枚举区间右端点,利用前缀和数组快速计算出区间和。如果区间长度大于等于 m m m,且区间和大于等于二分的值与区间长度的乘积,则说明当前二分的值是可行的,可以缩小右区间,否则需要缩小左区间。

最后二分的结果就是最大的平均值。

参考代码

  • Python
T = int(input())
for _ in range(T):n, m = map(int, input().split())arr = [int(input()) for _ in range(n)]def check(avg):minv = 0sum = [0] * (n + 1)for i in range(1, n + 1):sum[i] = sum[i - 1] + arr[i - 1] - avgfor i in range(m, n + 1):minv = min(minv, sum[i - m])if sum[i] >= minv:return Truereturn Falsel, r = 0, max(arr)while r - l > 1e-5:mid = (l + r) / 2if check(mid):l = midelse:r = midprint(f"{r:.3f}")
  • Java
import java.util.*;public class Main {static final int MAXN = 100005;static int[] arr = new int[MAXN];static double[] sum = new double[MAXN];static int n, m;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int T = sc.nextInt();while (T-- > 0) {n = sc.nextInt();m = sc.nextInt();double l = 0, r = 0;for (int i = 1; i <= n; ++i) {arr[i] = sc.nextInt();r = Math.max(r, (double) arr[i]);}while (r - l > 1e-5) {double mid = (l + r) / 2;if (check(mid)) {l = mid;} else {r = mid;}}System.out.printf("%.3f\n", r);}}static boolean check(double avg) {for (int i = 1; i <= n; ++i) {sum[i] = sum[i - 1] + arr[i] - avg;}double minv = 0;for (int i = m; i <= n; ++i) {minv = Math.min(minv, sum[i - m]);if (sum[i] >= minv) {return true;}}return false;}
}
  • Cpp
#include <iostream>
#include <cstdio>
#include <algorithm>using namespace std;const int MAXN = 100005;
int arr[MAXN];
double sum[MAXN];
int n, m;bool check(double avg) {for (int i = 1; i <= n; ++i) {sum[i] = sum[i - 1] + arr[i] - avg;}double minv = 0;for (int i = m; i <= n; ++i) {minv = min(minv, sum[i - m]);if (sum[i] >= minv) {return true;}}return false;
}int main() {int T;cin >> T;while (T--) {cin >> n >> m;double l = 0, r = 0;for (int i = 1; i <= n; ++i) {cin >> arr[i];r = max(r, (double) arr[i]);}while (r - l > 1e-5) {double mid = (l + r) / 2;if (check(mid)) {l = mid;} else {r = mid;}}printf("%.3f\n", r);}return 0;
}

写在最后

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

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

常见物联网面试题详解

物联网一直是非常火热的行业&#xff0c;G端如智慧城市、智慧工厂、智慧园区、智慧水利、智慧矿山等行业&#xff0c;都会涉及到物联网&#xff0c;基本都是软硬一体&#xff0c;因此当面试相关企业时&#xff0c;物联网平台是面试企业重点考察的项&#xff0c;小伙伴如果从事相…

前端使用Compressor.js实现图片压缩上传

前端使用Compressor.js实现图片压缩上传 Compressor.js官方文档 安装 npm install compressorjs使用 在使用ElementUI或者其他UI框架的上传组件时&#xff0c;都会有上传之前的钩子函数&#xff0c;在这个函数中可以拿到原始file&#xff0c;这里我用VantUI的上传做演示 a…

财务管理|基于SprinBoot+vue的财务管理系统(源码+数据库+文档)

财务管理系统 目录 基于SprinBootvue的财务管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 1管理员功能模块 2员工功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1…

Docker快速搭建NAS服务——NextCloud

Docker快速搭建NAS服务——NextCloud 文章目录 前言NextCloud的搭建docker-compose文件编写运行及访问 总结 前言 本文主要讲解如何使用docker在本地快速搭建NAS服务&#xff0c;这里主要写如下两种&#xff1a; FileBrowser1&#xff1a;是一个开源的Web文件管理器&#xff…

idea运行项目报错提示:java: 错误: 不支持发行版本 19,让我来看看

在项目经常切换jdk时&#xff0c;这个error经常能遇到“不支持发行版本19”&#xff0c;这个问题修改起来其实很简单&#xff0c;但在真正操作到能够解决问题的那一步前&#xff0c;通常习惯先去查看配置的jdk版本是否是选择正确的&#xff0c;也就是先确认当前这个项目选择的j…

西湖大学英语听力考试音频无线发射系统-英语听力发射系统浅析

西湖大学英语听力考试音频无线发射系统-英语听力发射系统浅析 由北京海特伟业科技任洪卓发布于2024年5月10日 西湖大学&#xff0c;这所矗立于时代前沿的高等学府&#xff0c;始终秉持着创新精神和追求卓越的坚定信念&#xff0c;不断致力于教学质量的提升与学术研究的深化。其…

实体门店超-常规营销获客:218套落地方案/打造引流/锁客/复购/裂变营销

课程内容&#xff1a; 1 记住&#xff0c;生意不好不一定是你产品出了问题,mp4 2 生意人为什么要从产品思维向流量思维转型&#xff0c;社区超市每月多5万.mp4 3 实体老板不懂鱼塘理论只能等死&#xff0c;美业1招锁定275名年用户卡,mp4 4 餐饮赢销八部&#xff0c;帮你引爆…

MathType2024官方版数学公式编辑器功能全面介绍

在数字化学习和科研的浪潮中&#xff0c;数学公式的编辑与展示成为了不可或缺的一部分。MathType&#xff0c;作为一款专业的数学公式编辑器&#xff0c;凭借其强大的功能和便捷的操作&#xff0c;为科研人员、教师、学生等广大用户提供了极大的便利。下面&#xff0c;我们将对…

【Linux】模拟实现bash(简易版)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

视频号小店应该如何开店呢?详细的开店流程分享给你!

大家好&#xff0c;我是电商小V 视频号小店就是威信视频号团队为咱们商家提供的卖货平台&#xff0c;可以说是支持咱们商家在视频号场景中开店进行经营的模式&#xff0c; 视频号大概的开店流程那就是&#xff1a;找到视频号开店&#xff0c;选择企业入驻&#xff0c;填写信息&…

5.9代码

1.选素数 从数学来看&#xff0c;n素数*k,k2,3,4...&#xff0c;而我们要进行两次&#xff0c;由于有多个解时我们要选最小的&#xff0c;所以要找到最大的素数&#xff0c;但是这个最大素数要小于等于n/2的整数&#xff0c;然后中间那一次的n的选择要选比最大素数大的最少的合…

【二分查找 滑动窗口】100257找出唯一性数组的中位数

本文涉及知识点 二分查找算法合集 C算法&#xff1a;滑动窗口总结 LeetCode 100257找出唯一性数组的中位数 给你一个整数数组 nums 。数组 nums 的 唯一性数组 是一个按元素从小到大排序的数组&#xff0c;包含了 nums 的所有非空子数组中不同元素的个数。 换句话说&#xf…

java图片水印字体乱码问题

问题描述&#xff1a;在linux Centos-7.5_64bit系统的其他服务器上不乱码&#xff0c;在部署项目的正式服务器乱码 水印字体设置是 微软雅黑 Font wordFont new Font("微软雅黑", Font.ITALIC,(srcImgHeightsrcImgWidth)/50); 一.Springboot项目&#xff0c;部署在…

高效视频剪辑:批量剪辑添加srt字幕,快速制作专业视频

在视频制作过程中&#xff0c;字幕扮演着至关重要的角色&#xff0c;它们不仅能增强观众对视频内容的理解&#xff0c;还能提高视频的观感体验。然而&#xff0c;手动为每一个视频添加字幕是一项既耗时又繁琐的任务。现在有了云炫AI智剪和技巧&#xff0c;我们可以轻松地实现批…

Photoshop中选区工具的应用

Photoshop中选区工具的应用 前言Photoshop中选区工具的基本操作创建选区的工具及方法选择、取消、隐藏选区选区的增加、减少选区的应用变换扩大选取与选取相似 Photoshop中采用快速选择工具来创建选区Photoshop中采用色彩范围命令来创建选区Photoshop中采用快速蒙版来创建选区P…

安全加固

目录 1.文件锁定管理 2.设置用户账户有效期 3.查看并清除命令历史记录 4.设置用户超时登出时间 5.用户切换 6.用户提权 7.禁用重启热键CtrlAltDel 8.设置单用户模式密码 9.调整BIOS引导设置 10.禁止root用户从本地登录&#xff1a; 11.禁止root用户通过ss…

大数据------JavaWeb------Tomcat(完整知识点汇总)

Web服务器——Tomcat Web服务器定义 它是一个应用程序&#xff08;软件&#xff09;&#xff0c;对HTTP协议的操作进行封装&#xff0c;使得程序员不必直接对协议进行操作&#xff0c;让Web开发更便捷 Web服务器主要功能 封装HTTP协议操作&#xff0c;简化开发将Web项目部署到…

如何免费获得进仓数据库专家认证(帮你省50块钱)

这篇文章分三个部分 50块钱解决&#xff08;全靠自己钱可能打水漂考试只有三次机会&#xff09;50块钱解决&#xff08;全靠自己考试只有三次机会。&#xff09;30块钱解决&#xff08;考试靠我&#xff0c;报名费帮你0元处理&#xff0c;要求只有在线大学生。能力有限只能考K…

春秋云镜 CVE-2022-4230

靶标介绍&#xff1a; WP Statistics WordPress 插件13.2.9之前的版本不会转义参数&#xff0c;这可能允许经过身份验证的用户执行 SQL 注入攻击。默认情况下&#xff0c;具有管理选项功能 (admin) 的用户可以使用受影响的功能&#xff0c;但是该插件有一个设置允许低权限用户…

多标签分割

https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.9/configs/multilabelseg/README_cn.md