当前位置: 首页 > news >正文

笔试题——第五周

目录

Day1

排序子序列

消减整数

最长上升子序列

Day2

爱吃素

相差不超过k的最多数

最长公共子序列(一)

Day3

小红的口罩

春游

数位染色

Day4

素数回文

活动安排

合唱团

Day5

跳台阶扩展问题

包含不超过两种字符的最长子串

字符串的排列

Day6

ISBN号码

kotori和迷宫

矩阵最长递增路径

Day7

奇数位丢弃

求和

计算字符串的编辑距离


Day1

排序子序列

解法:贪心 + 模拟

定义一个指针i:

如果 a[i] < a[i+1] :序列呈现非递增一直走,直到走到波峰后停止,进行统计;

如果 a[i] > a[i+1] :序列呈现非递减一直走,直到走到波谷后停止,进行统计;

但出现 a[i] == a[i+1]怎么办?

如果是开头出现的:要跳过这段连续相等序列

其它地方出现就不用管

之后让i++

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int n;
int arr[N];
int main()
{cin >> n;for (int i = 0; i < n; i++)cin >> arr[i];int ret = 0, i = 0;while (i < n){if (i == n - 1){ret++;break;}if (arr[i] < arr[i + 1]){while (i + 1 < n && arr[i] <= arr[i + 1])i++;ret++;}else if (arr[i] > arr[i + 1]){while (i + 1 < n && arr[i] >= arr[i + 1])i++;ret++;}else{// 开始位置出现连续水平就要跳过while (i == 0 && i + 1 < n && arr[i] == arr[i + 1])i++;}i++;}cout << ret << endl;return 0;
}

消减整数

解法:贪心 + 数学

贪心:每次减去前面数的两倍,使数尽可能得小;

但是 : 8 -> 7 -> 5 -> 4 -> -4 就不行

所有我们要判断是否要减去前面数的两倍:

假设X减完a后变成y:

y减去2a的情况:(看看是否能够恰好变成0)

1.y - n1* 2* a = 0

2.y - n2* 2* 2 *a = 0

3.y - n3* 2* 2 *2 *a = 0

...

整理得:y - n*2*a = 0 ,即 y% (2*a) == 0时就能走减2a的路让最后结果恰好为0

#include <iostream>
using namespace std;long long T, H;long long Fun()
{H--; // 第一次一定减-1long long ret = 1, cur = 1;while (H){if (H % (2 * cur) == 0){cur *= 2;H -= cur;}elseH -= cur;ret++;}return ret;
}int main()
{cin >> T;while (T--){cin >> H;cout << Fun() << endl;}return 0;
}

最长上升子序列

解法:贪心 + 二分

解法具体参考:贪心算法题

class Solution
{
public:int LIS(vector<int> &a){vector<int> ret;int n = a.size();for (int i = 0; i < n; i++){if (ret.empty() || ret.back() < a[i])ret.push_back(a[i]);else{int left = 0, right = ret.size() - 1;while (left < right){int middle = (left + right) / 2;if (ret[middle] < a[i])left = middle + 1;elseright = middle;}ret[left] = a[i];}}return ret.size();}
};

Day2

爱吃素

解法:模拟

由于所给数据太大,不能直接相乘进行判断,进行分类讨论:

1. a>1 && b>1  所有两个数相乘的数一定不是素数(a和b是他们的因子)

2. a==1&&b是素数 || b==1&&a是素数 说明一定是素数

3.其它情况都不是素数

#include <iostream>
#include <cmath>
using namespace std;long long T, a, b;bool IsTrue(long long x)
{if (x < 2)return false; // 素数 != 质数for (long long i = 2; i <= sqrt(x); i++){if (x % i == 0)return false;}return true;
}int main()
{cin >> T;while (T--){cin >> a >> b;if (a > 1 && b > 1)cout << "NO" << endl;else{if ((a == 1 && IsTrue(b)) || (IsTrue(a) && b == 1))cout << "YES" << endl;elsecout << "NO" << endl;}}return 0;
}

相差不超过k的最多数

解法:滑动窗口

滑就完了

#include <iostream>
#include <algorithm>
using namespace std;long long n, k, a[200010], ret;int main()
{cin >> n >> k;for (long long i = 0; i < n; i++)cin >> a[i];sort(a, a + n);for (long long left = 0, right = 0; right < n; right++){// 进窗口// 出窗口while (a[right] - a[left] > k)left++;// 统计结果ret = max(ret, right - left + 1);}cout << ret << endl;return 0;
}

最长公共子序列(一)

解法:动态规划

两个字符串的dp问题

#include <iostream>
#include <string>
using namespace std;int n, m, dp[1010][1010];
string s1, s2;int main()
{cin >> n >> m;cin >> s1 >> s2;s1 = ' ' + s1;s2 = ' ' + s2;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){if (s1[i] == s2[j])dp[i][j] = dp[i - 1][j - 1] + 1;elsedp[i][j] = max(dp[i][j - 1], dp[i - 1][j]);}}cout << dp[n][m] << endl;return 0;
}

Day3

小红的口罩

解法:贪心 + 小根堆

每次找当前最小不舒适度使用:把全部数据扔到小根堆中每次找堆顶即可

#include <iostream>
#include <queue>
using namespace std;long long n, k, tmp, sum, ret;
priority_queue<long long, vector<long long>, greater<long long>> q;int main()
{cin >> n >> k;for (int i = 0; i < n; i++){cin >> tmp;q.push(tmp);}while (true){tmp = q.top();q.pop();sum += tmp;if (sum > k)break;q.push(tmp * 2);ret++;}cout << ret << endl;return 0;
}

春游

解法:分情况讨论

a把人数全分配到2人船,剩下的人坐便宜的其中一条船:看看要多少钱;

b把人数全分配到3人船,剩下的人坐便宜的其中一条船:看看要多少钱;

返回两者的最小花费;

但当你按照这样的思路去写,进行提交时发现只过了40%,为什么?

因为剩下的人可以和前面分配好的人一起去拼船的情况没有讨论到:

例如:如果a剩下人数是1人,它可以去和前面的分配好的2人拼3人船,即:b - a

同理b中的情况也需要讨论到...

#include <iostream>
using namespace std;long long T, n, a, b;int main()
{cin >> T;while (T--){cin >> n >> a >> b;long long sum1 = 0, sum2 = 0;if (n < 3){cout << min(a, b) << endl;}else{sum1 = n / 2 * a + (n % 2 == 0 ? 0 : min(a, min(b, b - a)));sum2 = n / 3 * b;if (n % 3 == 1)sum2 += min(a, min(b, 2 * a - b));else if (n % 3 == 2)sum2 += min(a, min(b, 3 * a - b));cout << min(sum1, sum2) << endl;}}return 0;
}

数位染色

解法:动态规划

01背包的应用~

注意空间开辟的大小

#include <iostream>
#include <string>
using namespace std;int sum, n, dp[20][200];
string s;int main()
{cin >> s;for (auto &e : s)sum += (e - '0');if (sum % 2 != 0){cout << "No" << endl;return 0;}s = " " + s;n = s.size();sum /= 2;dp[0][0] = 1;for (int i = 1; i <= n; i++){for (int j = 0; j <= sum; j++){dp[i][j] = dp[i - 1][j];if (j - (s[i - 1] - '0') >= 0){dp[i][j] = dp[i][j] || dp[i - 1][j - (s[i - 1] - '0')];}}}if (dp[n][sum])cout << "Yes" << endl;elsecout << "No" << endl;return 0;
}

Day4

素数回文

解法:模拟

读入数据便string,用string进行操作;

将n-1个字符串倒插到string后面;

转为long long 类型,判断是否是素数即可

#include <iostream>
#include <string>
#include <cmath>
using namespace std;string s;int main()
{cin >> s;for (int i = s.size() - 2; i >= 0; i--)s += s[i];long long ret = stol(s);for (int i = 2; i <= sqrt(ret); i++){if (ret % i == 0){cout << "noprime" << endl;return 0;}}cout << "prime" << endl;return 0;
}

活动安排

解法:排序 + 贪心

按照左端点进行排序;

按第一个活动的结束时间cur,遍历2~n个活动:

如果cur <= 遍历到活动的开始时间:有重叠,选择最快结束时间的活动与下一个活动比较;

如果没重叠,则得到了一个活动,更新cur(此时cur为这个活动的结束时间)

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;long long n,b,c,cur,ret=1;
// vector<vector<long long>> a;
vector<pair<long long,long long>> a;
int main()
{cin>>n;while(n--){cin>>b>>c;a.push_back({b,c});}// sort(a.begin(),a.end(),[](vector<long long>&p1,vector<long long>&p2){//     return p1[0]<p2[0];// });sort(a.begin(),a.end());cur=a[0].second;for(int i=1;i<a.size();i++){if(cur<=a[i].first)//无重叠{ret++;cur=a[i].second;}else cur=min(cur,a[i].second);//重叠了}cout<<ret<<endl;return 0;
}

合唱团

解法:动态规划

#include <cstring>
#include <iostream>
using namespace std;typedef long long LL;
const LL INF = 0x3f3f3f3f3f3f3f3f;int n, k, d;
LL a[60], Mx[60][20], Mn[60][20], ret = -INF;int main()
{cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];cin >> k >> d;// memset(Mx, -INF, sizeof(Mx));// memset(Mn, INF, sizeof(Mn));// 初始化边界值 ->放在填表进行了//  for(int i=1;i<=n;i++)//  {//      Mx[i][1]=a[i];//      Mn[i][1]=a[i];//  }for (int i = 1; i <= n; i++){Mx[i][1] = Mn[i][1] = a[i];for (int j = 2; j <= min(k, i); j++) // 选j个人不可能 j>i 或者 j>k{// LL MaxVal=-INF,MinVal=INF;// prev个人选j-1 -> prev>j-1Mx[i][j] = -INF, Mn[i][j] = INF;for (int prev = max(j - 1, i - d); prev <= i - 1; prev++){Mx[i][j] = max(Mx[i][j], max(Mx[prev][j - 1] * a[i], Mn[prev][j - 1] * a[i]));Mn[i][j] = min(Mn[i][j], min(Mx[prev][j - 1] * a[i], Mn[prev][j - 1] * a[i]));// MaxVal=max(MaxVal,Mx[prev][j-1]);// MinVal=min(MinVal,Mn[prev][j-1]);}// long long tmp1=MaxVal*a[i],tmp2=MinVal*a[i];// Mx[i][j]=max(tmp1,tmp2);// Mn[i][j]=min(tmp1,tmp2);}}// 返回值 第k~n个人中必选时的最大值for (int i = k; i <= n; i++){ret = max(ret, Mx[i][k]);}cout << ret << endl;return 0;
}

Day5

跳台阶扩展问题

解法:找规律

台阶数n满足:2^(n-1)种跳法

#include <iostream>
#include <cmath>
using namespace std;int main()
{int n;cin >> n;cout << pow(2, n - 1) << endl;return 0;
}

包含不超过两种字符的最长子串

解法:滑动窗口

#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;int ret = 2;
string s;
unordered_map<char, int> h;int main()
{cin >> s;for (int left = 0, right = 0; right < s.size(); right++){// 进窗口if (h.size() <= 2)h[s[right]]++;// 出窗口while (h.size() > 2){h[s[left]]--;if (h[s[left]] == 0)h.erase(s[left]);left++;}ret = max(ret, right - left + 1);}cout << ret << endl;return 0;
}

字符串的排列

解法:排序 + dfs

先排序:把相同字符靠在一起;

画出决策树后发现两种特殊情况(字符相同时):

a.每层有相同字符时要进行剪枝;

b.dfs时遇到相同字符却是合法的;

两者的不同:

a情况下遇到的字符与前面相同,但前面字符没被标记过(不dfs)

b情况下遇到相同字符前面相同,但前面字符被标记过的(继续dfs)

class Solution
{
public:vector<string> ret;string path;bool vis[10] = {false};void dfs(string &str){if (path.size() == str.size()){ret.push_back(path);return;}for (int i = 0; i < str.size(); i++){if (i - 1 >= 0 && str[i - 1] == str[i] && vis[i - 1] == false)continue;if (!vis[i]){vis[i] = true;path += str[i];dfs(str);path.pop_back();vis[i] = false;}}}vector<string> Permutation(string str){sort(str.begin(), str.end());dfs(str);return ret;}
};

Day6

ISBN号码

解法:模拟

注意%11=10变成X的判断

#include <iostream>
#include <string>
using namespace std;string s;
int sum = 0, pos = 1;int main()
{cin >> s;for (int i = 0; i < s.size() - 1; i++){if (s[i] != '-'){sum += (s[i] - '0') * pos;pos++;}}if (sum % 11 == (s.back() - '0') || (sum % 11 == 10 && s.back() == 'X'))cout << "Right" << endl;else{s.pop_back();if (sum % 11 == 10)s.push_back('X');elses.push_back((sum % 11) + '0');cout << s << endl;}return 0;
}

kotori和迷宫

 解法:bfs

单源最短路问题:例外还要统计能否到达出口的个数

#include <iostream>
#include <climits>
#include <queue>
using namespace std;char a[38][38];
int n, m, arrive, ret = INT_MAX, step;
bool vis[38][38];
int dx[4] = {0, 0, 1, -1}, dy[4] = {1, -1, 0, 0};
queue<pair<int, int>> q;void dfs(int i, int j)
{if (a[i][j] == 'e'){arrive++;ret = min(ret, step);return;}for (int k = 0; k < 4; k++){int x = dx[k] + i, y = dy[k] + j;if (x >= 0 && x < n && y >= 0 && y < m && !vis[x][y] && a[x][y] != '*'){step++;vis[x][y] = true;dfs(x, y);vis[x][y] = false;step--;}}
}void bfs()
{while (q.size()){int sz = q.size();while (sz--){auto [i, j] = q.front();q.pop();if (a[i][j] == 'e'){arrive++;ret = min(ret, step);continue;}for (int k = 0; k < 4; k++){int x = i + dx[k], y = j + dy[k];if (x >= 0 && x < n && y >= 0 && y < m && !vis[x][y] && a[x][y] != '*'){vis[x][y] = true;q.push({x, y});}}}step++;}
}int main()
{cin >> n >> m;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){cin >> a[i][j];}}for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (a[i][j] == 'k'){vis[i][j] = true;// dfs(i,j); //超时q.push({i, j});bfs();// break;}}}if (arrive)cout << arrive << ' ' << ret << endl;elsecout << -1 << endl;return 0;
}

矩阵最长递增路径

解法:dfs(记忆化搜索)

dfs太耗时间了,添加备忘录加快dfs

#include <vector>
class Solution
{
public:int n, m, ret = 0, sum;bool vis[1010][1010] = {false};int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};int memo[1010][1010];// void dfs(vector<vector<int>>& matrix,int i,int j)int dfs(vector<vector<int>> &matrix, int i, int j){if (memo[i][j] != -1)return memo[i][j];// ret=max(ret,sum);int len = 1;for (int k = 0; k < 4; k++){int x = dx[k] + i, y = dy[k] + j;if (x >= 0 && x < n && y >= 0 && y < m && !vis[x][y] && matrix[x][y] > matrix[i][j]){vis[x][y] = true;// sum++;len = max(len, dfs(matrix, x, y) + 1);// memo[i][j]=dfs(matrix,x,y)+1;// return memo[i][j];// sum--;vis[x][y] = false;}}// return 1;memo[i][j] = len;return memo[i][j];}int solve(vector<vector<int>> &matrix){n = matrix.size(), m = matrix[0].size();memset(memo, -1, sizeof(memo));for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){vis[i][j] = true;// sum=1;ret = max(dfs(matrix, i, j), ret);vis[i][j] = false;}}return ret;}
};

Day7

奇数位丢弃

解法:模拟/规律

举例:0~10 

第一次丢弃:0 2 4 6 8 10 剩下:1 3 5 7 9 

第二次丢弃:1 5 9 剩下:3 7 

第三次丢弃:3 剩下:7

返回7

第x次丢弃的数的第一个数:2^x-1

所以要返回的数为:2^(x+1)-1 

#include <iostream>
using namespace std;int n;int main()
{while (cin >> n){int ret = 1;while (ret - 1 < n)ret *= 2;cout << ret / 2 - 1 << endl;}return 0;
}

求和

解法:dfs

画出决策树进行枚举求解

#include <iostream>
#include <vector>
using namespace std;int n, m, sum;
vector<vector<int>> ret;
vector<int> path;
bool vis[20];void dfs(int pos)
{if (sum > m)return;if (sum == m){ret.push_back(path);return;}for (int i = pos; i <= n; i++){vis[i] = true;sum += i;path.push_back(i);dfs(i + 1);path.pop_back();sum -= i;vis[i] = false;}
}int main()
{cin >> n >> m;dfs(1);for (auto &e : ret){for (auto &c : e)cout << c << ' ';cout << endl;}return 0;
}

计算字符串的编辑距离

解法:动态规划

两个字符串的dp问题:

a状态表示

dp [i][j]表示s1[0,i]区间与s2[0,j]区间内的最少的编辑距离

b状态转移方程

当 s1[i] 与 s2[j]相等时,dp [i][j] = dp [i-1][j-1]

当 s1[i] 与 s2[j]不相等时,有三种情况:

        选择把s1[i] 替换成s2[j] ,则 dp [i][j] = dp [i-1][j-1] +1

        选择s1后插入s2[j],则 dp [i][j] = dp [i][j-1] +1

        选择s1[i]删除,则 dp[i][j] = dp [i-1][j] + 1

取最小的情况min即可

c初始化

s1 = ‘ ’ + s1   s2 = ' ' + s2 (不用担心映射操作)

多开一行一列防止越界,根据实际情况对多开的空间进行初始化(不能上来就INT_MAX!),比较 dp[0][1]表示s1为空,需要进行一次编辑操作(插入字符)...

d填表顺序

从左往右,从上到下

e返回值 

dp[n][m]

#include <iostream>
#include <string>
using namespace std;string s1, s2;
int dp[1010][1010], n, m;int main()
{cin >> s1 >> s2;s1 = ' ' + s1, s2 = ' ' + s2;n = s1.size(), m = s2.size();// memset(dp, INT_MAX, sizeof(dp));for (int i = 0; i <= n; i++)dp[i][0] = i;for (int j = 0; j <= m; j++)dp[0][j] = j;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){if (s1[i] == s2[j])dp[i][j] = dp[i - 1][j - 1];else{dp[i][j] = min(dp[i - 1][j - 1], min(dp[i][j - 1], dp[i - 1][j])) + 1;// if(i==j) dp[i][j]=min(dp[i-1][j],dp[i][j-1])+1;}}}cout << dp[n][m] << endl;return 0;
}

以上便是全部内容,有问题欢迎在评论区指正,感谢观看!

相关文章:

笔试题——第五周

目录 Day1 排序子序列 消减整数 最长上升子序列 Day2 爱吃素 相差不超过k的最多数 最长公共子序列(一) Day3 小红的口罩 春游 数位染色 Day4 素数回文 活动安排 合唱团 Day5 跳台阶扩展问题 包含不超过两种字符的最长子串 字符串的排列 Day6 ISBN号码 k…...

图论-Floyd算法

在搜索中bfs只适合无权图 若是碰到有权图最简单的方法就是用邻接矩阵-二维矩阵存储每个点对之间的权重,然后用floyd 并且邻接矩阵还可以处理重边的问题&#xff08;用min&#xff09; INFfloat(inf) ma[[INF]*n for _ in range(n)]for i in range(n):ma[i][i]0for i in rang…...

使用pyinstaller打包fastapi项目的问题记录

文章目录 PyInstaller 相关介绍作用使用方式Spec 文件介绍 FastAPI 相关介绍什么是 FastAPI&#xff1f;使用方式 使用 PyInstaller 打包 FastAPI 项目常见问题与解决方案 PyInstaller 相关介绍 作用 PyInstaller 是一个将 Python 程序打包成独立可执行文件的工具&#xff0c…...

Java秒杀功能-案例

数据库表设计 CREATE TABLE user (id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(100) NOT NULL,password varchar(100) NOT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;CREATE TABLE order_info (id bigint(20) NOT NULL AUTO_INCREMENT,user_id bigi…...

Abp发布订阅

在 ABP&#xff08;AspNet Boilerplate&#xff09;框架里运用发布 - 订阅模式&#xff0c;有着多方面重要目的&#xff0c;以下为你详细阐述&#xff1a; 实现组件间的解耦 减少直接依赖&#xff1a;在传统的编程方式中&#xff0c;不同组件之间可能存在紧密的耦合关系&…...

docker部署ruoyi-vue-pro前后端详细笔记

docker部署ruoyi-vue-pro前后端详细笔记 参考&#xff1a;YuDaoCloud&#xff1a;Docker 部署 - 那个码农 1.准备工作 1.1 需要准备服务器&#xff0c;安装bt面板方便操作 if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wg…...

软考中级数据库系统工程师学习资料分享

软考中级数据库系统工程师考试对于很多 IT 从业者和计算机专业的大学生来说&#xff0c;是一个重要的职业资格认证。它不仅能够提升个人的专业技能&#xff0c;还能为职业发展增添有力的砝码。今天&#xff0c;我将为大家分享一套全面且实用的学习资料&#xff0c;帮助大家更好…...

RESTful学习笔记(一)

Web发展 一、API 程序硬件接口&#xff08;Application Programming Interface&#xff09;&#xff0c;是预先定义好的逻辑函数&#xff0c;软件系统不同组成部分衔接的约定&#xff0c;直接调用函数&#xff0c;无序访问代码细节&#xff0c;分为SDK和Web应用接口两类 SDK…...

基于 FFmpeg 的音视频处理基础原理与实验探究

目录 1 基本知识1.1 解封装1.2 AAC和ADTS说明 1.3 H2641.3.1 H264编码结构解析1.3.2 NALU1.3.2 分类 2 实验1 探究音视频信息2.1 重要结构体介绍2.2 相关的API 3 实验二 提取AAC数据4 实验三 提取h264 1 基本知识 1.1 解封装 封装的逆向操作&#xff1a;封装是把音频流、视频流…...

spark和hadoop的区别

一、核心定位与架构差异 Hadoop • 定位&#xff1a;分布式存储与计算的基础框架&#xff0c;核心解决海量数据的存储&#xff08;HDFS&#xff09;和离线批处理计算&#xff08;MapReduce&#xff09;问题&#xff0c;适合对实时性要求不高的大规模数据离线处理场景。 • 架构…...

vue使用语音识别

vue使用语音识别 使用 Web Speech API 实现语音识别功能 语音转换的原理可以简单概括为以下几个步骤&#xff1a; 声音捕捉&#xff1a;将声波转化为数字信号。特征提取&#xff1a;分析声音中的关键特征。声学模型&#xff1a;将声音特征与音素匹配。语言模型&#xff1a;根据…...

代码随想录算法训练营day8(栈与队列)

华子目录 用栈实现队列思路 用栈实现队列 https://leetcode.cn/problems/implement-queue-using-stacks/description/ push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。思路 初始化两个栈…...

GPT,Genini, Claude Llama, DeepSeek,Qwen,Grok,选对LLM大模型真的可以事半功倍!

选对大模型真的可以事半功倍&#xff01; 基于公开的技术报告、基准测试结果、在线反馈及用户使用情况&#xff0c;深入探讨各模型的特点、擅长领域及典型应用场景&#xff0c;为用户和开发者选择和应用合适的模型提供参考。 1. 引言 大型语言模型&#xff08;Large Language…...

Unocss 类名基操, tailwindcss 类名

这里只列出 unocss 的可实现类名&#xff0c;tailwindcss 可以拿去试试用 1. 父元素移入&#xff0c;子元素改样式 <!-- 必须是 group 类名 --> <div class"group"><div class"group-hover:color-red">Text</div> </div>2…...

Flowable7.x学习笔记(十)分页查询已部署 BPMN XML 流程

前言 上一篇文章我们已经完成了流程的部署功能&#xff0c;那么下一步就是要激活流程了&#xff0c;但是我们要需要明确的指定具体要激活部署后的哪一条流程&#xff0c;所以我们先把已部署的基础信息以及具体定义信息分页查询出来&#xff0c;本文先把基础代码生成以及完成分页…...

【阿里云大模型高级工程师ACP学习笔记】2.1 用大模型构建新人答疑机器人

学习目标 在备考阿里云大模型高级工程师ACP认证时,学习《2.1用大模型构建新人答疑机器人》这部分内容,主要是为了掌握利用大模型技术构建高效答疑机器人的方法,提升在大模型应用开发领域的专业能力。具体目标如下: 掌握大模型API调用:学会通过API调用通义千问大模型,熟悉…...

设计模式深度总结:概念、实现与框架中的应用

【全网最全】23种设计模式思维导图详解 | 含React/Vue/Spring实战案例 导图概述 本文通过高清思维导图系统梳理了23种设计模式&#xff0c;分为创建型、结构型、行为型三大类&#xff0c;并标注了各模式在主流框架&#xff08;如React、Vue、Spring&#xff09;中的典型应用场…...

2025 活体识别+人脸认证工具类【阿里云api,需要先申请试用】

&#xff08;1&#xff09;获取活体检测的人脸URL地址和Token。 &#xff08;2&#xff09;活体检测成功后&#xff0c;使用Token验证人脸检测结果的一致性。 &#xff08;3&#xff09;对于检测结果一致的人脸照片&#xff0c;进行姓名、身份证号和照片的认证流程。 一、活…...

【HDFS】verifyEC命令校验EC数据正确性

verifyEC命令是HDFS里用于验证EC文件正确性的一个工具。这是一个非常实用的工具,能帮助我们确定EC的数据内容是否正确,并且如果不正确的话,还有可能会触发reportBadBlock给NN,让NN进行块的重构。 本文先介绍一下verifyEC命令的使用方法,再描述其实现原理细节。 一、命令…...

【PCIE730】基于PCIe总线架构的4路10G光纤通道适配器

板卡简介 PCIE730是一款基于PCI Express总线架构的4路10G光纤通道适配器&#xff0c;板卡具有4通道SFP万兆光纤接口&#xff0c;x8 PCIE主机接口&#xff0c;具有1组64位DDR3 SDRAM作为高速缓存&#xff0c;可以实现4通道光纤网络数据的高速采集、实时记录和宽带回放。 该板卡还…...

蚂蚁全媒体总编刘鑫炜再添新职,出任共工新闻社新媒体研究院院长

2025年4月18日&#xff0c;共工新闻社正式宣布聘任蚂蚁全媒体总编刘鑫炜为新媒体研究院院长。此次任命标志着刘鑫炜在新媒体领域的专业能力与行业贡献再次获得权威机构认可。 刘鑫炜深耕新媒体领域多年&#xff0c;曾担任中国新闻传媒集团新媒体研究院院长、蚂蚁全媒体总编等职…...

C++11——可调用对象

目录 lambda 表达式语法 捕捉列表 function bind 调整参数个数 参数顺序 lambda 表达式语法 lambda表达式本质上是匿名函数对象&#xff0c;该表达式在语法使用层是没有类型的&#xff0c;一般用auto或模板参数定义的对象去接收它的对象&#xff08;模板参数定义的对象…...

【上位机——MFC】运行时类信息机制

运行时类信息机制的使用 类必须派生自CObject类内必须添加声明宏DECLARE_DYNAMIC(theClass)3.类外必须添加实现宏 IMPLEMENT_DYNAMIC(theClass,baseClass) 具备上述三个条件后&#xff0c;CObject::IsKindOf函数就可以正确判断对象是否属于某个类。 代码示例 #include <…...

数据中的知识产权问题

首席数据官高鹏律师团队编著 数据中的知识产权问题涉及法律、技术和社会多个层面&#xff0c;其复杂性随着数据价值的提升和数字化发展日益凸显。以下是核心要点的梳理和分析&#xff1a; 一、数据本身的知识产权属性 1. 原始数据&#xff08;Raw Data&#xff09; 通常不直…...

若依框架免登陆、页面全屏显示、打开新标签页(看板大屏)

1.免登陆&#xff1a;找到项目目录下src/permission.js&#xff0c;在白名单whiteList中添加上你的看板大屏路由地址&#xff0c;这样就不会校验该路由的token&#xff08;这里我添加的是/mesBoard/mesqualityboard&#xff09;&#xff1b; 要注意的是此时免登陆进来也会报404…...

算法-策略(递归,二叉搜索)

分而治之 一个大问题不断拆成各种小问题&#xff0c;大问题与小问题的方向要一致。 递归函数(递减) 分析时间函数的两种方法&#xff1a;递归树(跟踪树) &#xff0c;代换法。 例1 例2 这里的代换法注意&#xff0c;不要轻易的把常数加在一起&#xff0c;加在一起后看不出规…...

unity TEngine学习4

上一篇我们学习了UI部分&#xff0c;这一篇我们学习其他部分&#xff0c;按照老规矩还是先打开官方文档 ResourceModule 在官方文档里介绍了当前加载的设置&#xff0c;但是我们是小白看不懂&#xff0c;那就不管他内部怎么实现的&#xff0c;我们主要看下面的代码给的方法&am…...

掌握常见 HTTP 方法:GET、POST、PUT 到 CONNECT 全面梳理

今天面试还问了除了 get 和 post 方法还有其他请求方法吗&#xff0c;一个都不知道&#xff0c;这里记录下。 &#x1f310; 常见 HTTP 请求方法一览 方法作用描述是否幂等是否常用GET获取资源&#xff0c;参数一般拼接在 URL 中✅ 是✅ 常用POST创建资源 / 提交数据&#xff…...

在线查看【免费】 mp3,wav,mp4,flv 等音视频格式文件文件格式网站

可以免费在线查看 .docx/wps/Office/wmf/ psd/ psd/eml/epub/dwg, dxf/ txt/zip, rar/ jpg/mp3 m.gszh.xyz m.gszh.xyz 免费支持以下格式文件在线查看类型 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx, xlam, xla, pages 等 Office 办…...

部署Kimi-VL-A3B-Instruct视频推理

部署Kimi-VL-A3B-Instruct视频推理 契机 ⚙ 最近国内AI公司月之暗面推出了Kimi-VL开源视觉模型。模型参数16.4B&#xff0c;但是推理时候激活参数2.8B。看了huggingface主页的Full comparison&#xff0c;在多项Benchmark的时候都展示出了不俗的实力。由于业务中使用了qwen-v…...

力扣面试经典150题(第二十四题)

问题 给定一个单词数组 words 和一个长度 maxWidth &#xff0c;重新排版单词&#xff0c;使其成为每行恰好有 maxWidth 个字符&#xff0c;且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词&#xff1b;也就是说&#xff0c;尽可能多地往每行中放置单词。必…...

Electron Demo 的快速编译与启动

前言 本文将带你从零开始&#xff0c;快速搭建并运行一个基于 OpenIMSDK 的 Electron 应用。本项目以 OpenIMSDK 开源版为基础&#xff0c;借助 openim/electron-client-sdk 与 openim/wasm-client-sdk&#xff0c;能够同时构建 Web 端及桌面端&#xff08;Windows、macOS、Lin…...

Web3核心技术解析:从区块链到C++实践

Web3作为下一代互联网的核心架构&#xff0c;正在通过区块链、智能合约、分布式存储等技术的融合&#xff0c;重塑数字世界的信任与协作模式。本文将从技术原理、应用场景及C实践案例三个维度&#xff0c;深入解析Web3的核心技术体系。 一、Web3的核心技术栈 1. 区块链&#x…...

Elasticsearch中的_source字段讲解

_source 在 Elasticsearch 查询中用于限制返回的字段,类似于 SQL 中的 SELECT 指定列。 代码示例: esSearchResults = es_service.search_documents({"query": {"terms": {"file_id":...

LlamaIndex 生成的本地索引文件和文件夹详解

LlamaIndex 生成的本地索引文件和文件夹详解 LlamaIndex 在生成本地索引时会创建一个 storage 文件夹&#xff0c;并在其中生成多个 JSON 文件。以下是每个文件的详细解释&#xff1a; 1. storage 文件夹结构 1.1 docstore.json 功能&#xff1a;存储文档内容及其相关信息。…...

笔记:react中 父组件怎么获取子组件中的属性或方法

在子组件中我们可以使用下面两个方法去暴露你所要放行的属性或方法&#x1f447; 1.useImperativeHandle 2.orwardRef 搭配使用例子 import React, { useState, forwardRef, useImperativeHandle } from "react"function Son(props, ref) {const [data] useStat…...

Python+CoppeliaSim+ZMQ remote API控制机器人跳舞

这是一个使用Python和CoppeliaSim&#xff08;V-REP&#xff09;控制ASTI人型机器人进行舞蹈动作的演示项目。 项目描述 本项目展示了如何使用Python通过ZeroMQ远程API与CoppeliaSim仿真环境进行交互&#xff0c;控制ASTI人型机器人执行预定义的舞蹈动作序列。项目包含完整的机…...

oracle rac时区问题导致远程查询时间不准

远程工具SQLDev工具和应用出来的时间都要慢12个小时 检查操作系统和硬件时间 # date Fri Apr 18 15:54:11 CST 2025 date -R Fri, 18 Apr 2025 16:06:24 0800 # hwclock -r Fri 18 Apr 2025 04:08:38 PM CST -0.313786 seconds 都是没有问题&#xff0c;时间和时区都是…...

LPO 光模块:下一代数据中心网络的节能高效新选择

一、LPO 光模块的定义与核心原理 LPO&#xff08;Linear Pluggable Optics&#xff0c;线性可插拔光模块&#xff09;是光通信领域针对高速率、低功耗需求推出的创新解决方案。其核心突破在于摒弃传统光模块中的 DSP&#xff08;数字信号处理&#xff09;芯片&#xff0c;采用线…...

MCP Server Java 开发框架的体验比较(spring ai mcp 和 solon ai mcp)

目前已知的两个 mcp-server java 应用开发框架&#xff08;ID类的&#xff0c;封装后体验都比较简洁&#xff09;&#xff1a; spring-ai-mcp&#xff0c;支持 java17 或以上solon-ai-mcp&#xff0c;支持 java8 或以上&#xff08;也支持集成到 springboot2, jfinal, vert.x …...

OpenCV 图形API(45)颜色空间转换-----将图像从 BGR 色彩空间转换为 YUV 色彩空间函数BGR2YUV()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像从BGR色彩空间转换为YUV色彩空间。 该函数将输入图像从BGR色彩空间转换为YUV。B、G和R通道值的常规范围是0到255。 输出图像必须是8位无符…...

C++入门语法

C入门 首先第一点&#xff0c;C中可以混用C语言中的语法。但是C语言是不兼容C的。C主要是为了改进C语言而创建的一门语言&#xff0c;就是有人用C语言用不爽了&#xff0c;改出来个C。 命名空间 c语言中会有如下这样的问题&#xff1a; 那么C为了解决这个问题就整出了一个命名…...

个性化的配置AndroidStudio

Android Studio 提供诸多向导和模板&#xff0c;可用于验证 Java 开发套件 (JDK) 和可用 RAM 等系统要求&#xff0c;以及配置默认设置&#xff0c;例如经过优化的默认 Android 虚拟设备 (AVD) 模拟和更新的系统映像。本文档介绍了可用于自定义 Android Studio 使用方式的其他配…...

Python-24:小R的随机播放顺序

问题描述 小R有一个特殊的随机播放规则。他首先播放歌单中的第一首歌&#xff0c;播放后将其从歌单中移除。如果歌单中还有歌曲&#xff0c;则会将当前第一首歌移到最后一首。这个过程会一直重复&#xff0c;直到歌单中没有任何歌曲。 例如&#xff0c;给定歌单 [5, 3, 2, 1,…...

JavaScript — 总结

介绍 JavaScript是一种广泛应用于Web开发的高级脚本语言&#xff0c;主要用于为网页添加交互功能。作为前端开发的三大核心技术之一&#xff0c;它与HTML&#xff08;结构&#xff09;和CSS&#xff08;样式&#xff09;协同工作&#xff0c;通过操作DOM元素实现动态内容更新、…...

解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题

解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题 在 Ubuntu 上使用 Intel VTune Profiler 时遇到无法收集 CPU 硬件性能计数器数据的问题&#xff0c;通常是由于权限和系统配置问题导致的。以下是解决方案&#xff1a; 1. 检查并加载性能监控模块 首先确保 Linux…...

MySQL《事务》

文章目录 前言一、什么是事务&#xff1f;二、事务的ACID特性三、如何使用事务&#xff1f;3.1 查看支持事务的存储引擎3.2 语法3.3 开启一个事务&#xff0c;执行修改后回滚3.4 开启一个事务&#xff0c;执行修改后提交3.5 保存点3.6 自动/手动提交事务 四、事务的隔离性和隔离…...

微服务划分的思考

为什么 微服务不是十全十美的,不是银弹,是什么原因导致必须要做微服务划分,是否有足够的动机支撑,是项目需要,还是领导的想法,公司层面是否有相应的规划。 拆分后的服务谁来维护,研发同学是否愿意参与 为什么,思考清楚了,接下来看还需要考虑怎么做 单体应用的不足…...

介绍XML

XML&#xff08;Extensible Markup Language&#xff0c;可扩展标记语言&#xff09;是一种用于存储、传输和交换数据的标记语言&#xff0c;由万维网联盟&#xff08;W3C&#xff09;在1998年制定。它通过自定义标签描述数据结构&#xff0c;具有平台无关性、自描述性和结构化…...

从0开始配置spark-local模式

安装Spark的过程就是下载和解压的过程。接下来的操作&#xff0c;我们把它上传到集群中的节点&#xff0c;并解压运行。 1.启动虚拟机 2.通过finalshell连接虚拟机&#xff0c;并上传安装文件到 /opt/software下 3.解压spark安装文件到/opt/module下 tar -zxvf spark-3.3.1-…...