笔试强训题(7)
目录
- 1. Day37
- 1.1 旋转字符串(字符串)
- 1.2 合并k个已排序的链表(链表)
- 1.3 滑雪(记忆化搜索)
- 2. Day38
- 2.1 天使果冻(递推 + DP)
- 2.2 dd爱旋转(模拟)
- 2.3 小红取数(动态规划 - 01 背包 + 同余)
- 3. Day39
- 3.1 神奇的字母(二)(哈希 + 字符串)
- 3.2 字符编码(哈夫曼编码)
- 3.3 最少的完全平方数(动态规划)
- 4. Day40
- 4.1 游游的字母串(枚举)
- 4.2 体育课测验(二)(拓扑排序)
- 4.3 合唱队形(动态规划)
- 5. Day41
- 5.1 棋子翻转(模拟)
- 5.2 宵暗的妖怪(动态规划)
- 5.3 过桥(BFS)
- 6. Day42
- 6.1 最大差值(模拟 + 贪心)
- 6.2 兑换零钱(动态规划 - 完全背包)
- 6.3 小红的子串(前缀和 + 双指针)
1. Day37
1.1 旋转字符串(字符串)
- 题目链接: 旋转字符串
- 题目描述:
- 解法(字符串查找):
- 算法思路:
- 第⼀种解法:按照题目的要求模拟,每次旋转⼀下 A 字符串,看看是否和 B 字符串相同。
- 第⼆种解法:需要找到字符串旋转之后能匹配所满足的性质。如果 A 字符串能够旋转之后得到 B 字符串的话,在 A 字符串倍增之后的新串中,⼀定是可以找到 B 字符串的。 因此,我们仅需让 A 字符串倍增,然后查找 B 字符串即可。
- 算法思路:
- C++ 算法代码:
class Solution {
public:bool solve(string A, string B) {if(A.size() != B.size()){return false;}return (A + A).find(B) != -1;}
};
1.2 合并k个已排序的链表(链表)
- 题目链接: NC51 合并k个已排序的链表
- 题目描述:
- 解法:
- 算法思路:利用堆,模拟题~
- C++ 算法代码:
/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) : val(x), next(nullptr) {}* };*/
class Solution {
public:struct cmp{bool operator()(ListNode* l1, ListNode* l2){return l1->val > l2->val;}};ListNode* mergeKLists(vector<ListNode*>& lists) {priority_queue<ListNode*, vector<ListNode*>, cmp> heap;for(auto& e : lists){if(e != nullptr){heap.push(e);}}ListNode* ret = new ListNode(0);ListNode* cur = ret;while(heap.size()){ListNode* tmp = heap.top();heap.pop();cur->next = tmp;cur = cur->next;if(tmp->next != nullptr){heap.push(tmp->next);}}return ret->next;}
};
1.3 滑雪(记忆化搜索)
- 题目链接: DP18 滑雪
- 题目描述:
- 解法:
- 算法思路:矩阵最长递增路径变成矩阵最长递减路径~
- C++ 算法代码:
#include <iostream>
using namespace std;const int N = 110;int n, m;
int arr[N][N];
int dp[N][N] = {0};
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};int dfs(int i, int j)
{if(dp[i][j]){return dp[i][j];}int len = 1;for(int k = 0; k < 4; k++){int x = i + dx[k];int y = j + dy[k];if(x >= 1 && x <= n && y >= 1 && y <= m && arr[x][y] < arr[i][j]){len = max(len, dfs(x, y) + 1);}}dp[i][j] = len;return len;
}int main()
{cin >> n >> m;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){cin >> arr[i][j];}}int ret = 1;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){ret = max(ret, dfs(i, j));}}cout << ret << endl;return 0;
}
2. Day38
2.1 天使果冻(递推 + DP)
- 题目链接: 天使果冻
- 题目描述:
- 解法:
- 算法思路:需要两个数组来保存最大值和次大值,当新的元素进来就有三种情况:
- 第一种就是比最大值还大。
- 第二种就是大于次大值小于最大值。
- 第三种是比次大致小。但是第三种情况不是不更新,而是把前面的最大值和次大值要保存的后面来。
- 算法思路:需要两个数组来保存最大值和次大值,当新的元素进来就有三种情况:
- C++ 算法代码:
#include <iostream>
#include <algorithm>
using namespace std;const int N = 1e5 + 10;
int sp[N];
int f[N];
int g[N];int main()
{int n = 0;cin >> n;for(int i = 0; i < n; i++){cin >> sp[i];}f[0] = sp[0];g[0] = -1;for(int i = 1; i < n; i++){f[i] = max(f[i - 1], sp[i]);if(sp[i] >= f[i - 1]){g[i] = f[i - 1];}else if(sp[i] >= g[i - 1] && sp[i] < f[i - 1]){g[i] = sp[i];}else{g[i] = g[i - 1];}}int q = 0;cin >> q;while(q--){int x = 0;cin >> x;cout << g[x - 1] << endl;}return 0;
}
2.2 dd爱旋转(模拟)
- 题目链接: dd爱旋转
- 题目描述:
- 解法:
- 算法思路:模拟题,但是需要不能直接无脑模拟,要思考⼀下规律~
- C++ 算法代码:
#include <iostream>
using namespace std;const int N = 1010;
int n;
int g[N][N];void setRow()
{for(int i = 0; i < n / 2; i++){for(int j = 0; j < n; j++){swap(g[i][j], g[n - 1 - i][j]);}}
}void setCol()
{for(int j = 0; j < n / 2; j++){for(int i = 0; i < n; i++){swap(g[i][j], g[i][n - 1 - j]);}}
}int main()
{cin >> n;for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){cin >> g[i][j];}}int q = 0;cin >> q;int row = 0;int col = 0;while(q--){int x = 0;cin >> x;if(x == 1){row++;col++;}else{row++;}}row %= 2;col %= 2;if(row){setRow();}if(col){setCol();}for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){cout << g[i][j] << " ";}cout << endl;}return 0;
}
2.3 小红取数(动态规划 - 01 背包 + 同余)
- 题目链接: DP40 小红取数
- 题目描述:
- 解法:
- 算法思路:这道题是不能用空间优化的~
- dp[i][j]表示:前i个数中挑选,总和 %k等于 j 时,最大和是多少。j 表示的是余数。
- 算法思路:这道题是不能用空间优化的~
- C++ 算法代码:
#include <iostream>
#include <cstring>
using namespace std;const int N = 1010;int main()
{int n, k;cin >> n >> k;long long arr[N];for(int i = 1; i <= n; i++){cin >> arr[i];}long long dp[N][N];memset(dp, -0x3f, sizeof dp);dp[0][0] = 0;for(int i = 1; i <= n; i++){for(int j = 0; j < k; j++){dp[i][j] = max(dp[i - 1][j], dp[i - 1][(j - arr[i] % k + k) % k] + arr[i]); // j - arr[i] % k可能是负数,所以加上k修正,后面%k是修正本来是正数的值}}if(dp[n][0] <= 0){cout << -1 << endl;}else {cout << dp[n][0] << endl;}return 0;
}
3. Day39
3.1 神奇的字母(二)(哈希 + 字符串)
- 题目链接: 神奇的字母(二)
- 题目描述:
- 解法:
- 算法思路:哈希表。
- C++ 算法代码:
#include <iostream>
using namespace std;int main()
{string s;int hash[26] = {0};char ret = 0;int maxcount = 0;while(cin >> s){for(auto& ch : s){if(++hash[ch - 'a'] > maxcount){ret = ch;maxcount = hash[ch - 'a'];}}}cout << ret << endl;return 0;
}
3.2 字符编码(哈夫曼编码)
- 题目链接: MT7 字符编码
- 题目描述:
- 解法:
- 算法思路:哈夫曼编码模板题~
- C++ 算法代码:
#include <iostream>
#include <vector>
#include <queue>
using namespace std;int main() {string s;while (cin >> s) {// 1. 先统计每个字符的频次int hash[300] = { 0 };for (auto ch : s) {hash[ch]++;}// 2. 把所有的频次放⼊堆⾥⾯priority_queue<int, vector<int>, greater<int>> heap;for (int i = 0; i < 300; i++) {if (hash[i]) heap.push(hash[i]);}// 3. 哈夫曼编码int ret = 0;while (heap.size() > 1) {int t1 = heap.top();heap.pop();int t2 = heap.top();heap.pop();ret += t1 + t2;heap.push(t1 + t2);}cout << ret << endl;}return 0;
}
3.3 最少的完全平方数(动态规划)
- 题目链接: DP43 最少的完全平方数
- 题目描述:
- 解法:
- 算法思路:完全背包问题。
- C++ 算法代码:
#include <iostream>
#include <cstring>
using namespace std;const int N = 1e4 + 0;int main()
{int n = 0;cin >> n;int dp[N] = {0};memset(dp, 0x3f, sizeof dp);dp[0] = 0;for(int i = 1; i * i <= n; i++){for(int j = i * i; j <= n; j++){dp[j] = min(dp[j], dp[j - i * i] + 1);}}cout << dp[n] << endl;return 0;
}
4. Day40
4.1 游游的字母串(枚举)
- 题目链接: 游游的字母串
- 题目描述:
- 解法:
- 算法思路:枚举所有可能变成的字符情况。
- C++ 算法代码:
#include <iostream>
using namespace std;int main()
{string s;cin >> s;int ret = 1e9;for(char ch = 'a'; ch <= 'z'; ch++){int sum = 0;for(auto x : s){sum += min(abs(x - ch), 26 - abs(x - ch));}ret = min(ret, sum);}cout << ret << endl;return 0;
}
4.2 体育课测验(二)(拓扑排序)
- 题目链接: NC316 体育课测验(二)
- 题目描述:
- 解法:
- 算法思路:简单拓扑排序的应⽤。
- C++ 算法代码:
class Solution {public:vector<int> findOrder(int n, vector<vector<int> >& groups) {vector<vector<int>> edges(n); // 存储边vector<int> in(n); // ⼊度// 1. 建图for(auto v : groups) {int a = v[0], b = v[1]; // b -> aedges[b].push_back(a);in[a]++;}queue<int> q;// 2. ⼊度为 0 的点,加⼊到队列⾥⾯for(int i = 0; i < n; i++) {if(in[i] == 0) {q.push(i);}}// 3. 拓扑排序vector<int> ret;while(q.size()) {int a = q.front();q.pop();ret.push_back(a);for(auto b : edges[a]){ // a -> bif(--in[b] == 0) {q.push(b);}}}if (ret.size() == n){return ret;}else{return {};}}
};
4.3 合唱队形(动态规划)
- 题目链接: DP16 合唱队形
- 题目描述:
- 解法:
- 算法思路:最长上升子序列模型。
- C++ 算法代码:
#include <iostream>
using namespace std;
const int N = 1010;
int n;
int arr[N], f[N], g[N];
int main()
{cin >> n;for (int i = 1; i <= n; i++) cin >> arr[i];// 从前向后for (int i = 1; i <= n; i++) {f[i] = 1;for (int j = 1; j < i; j++) {if (arr[j] < arr[i]) {f[i] = max(f[i], f[j] + 1);}}}// 从后向前for (int i = n; i >= 1; i--) {g[i] = 1;for (int j = i + 1; j <= n; j++) {if (arr[i] > arr[j]){g[i] = max(g[i], g[j] + 1);}}}int len = 0;for (int i = 1; i <= n; i++) {len = max(len, f[i] + g[i] - 1);}cout << n - len << endl;return 0;
}
5. Day41
5.1 棋子翻转(模拟)
- 题目链接: MT2 棋子翻转
- 题目描述:
- 解法:
- 算法思路。模拟即可。注意点:
- 如何访问上下左右四个⽅向;
- 访问的时候不要越界;
- 下标的对应关系;
如何优雅地翻转~
- 算法思路。模拟即可。注意点:
- C++ 算法代码:
class Solution {public:int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};vector<vector<int> > flipChess(vector<vector<int> >& A, vector<vector<int> >& f) {for(auto& v : f) {int a = v[0] - 1, b = v[1] - 1;for(int i = 0; i < 4; i++) {int x = a + dx[i], y = b + dy[i];if(x >= 0 && x < 4 && y >= 0 && y < 4) {A[x][y] ^= 1;}}}return A;}
};
5.2 宵暗的妖怪(动态规划)
- 题目链接: 宵暗的妖怪
- 题目描述:
- 解法:
- 算法思路:打家劫舍,但是别抢到最后⼀家就行了~
- C++ 算法代码:
#include <iostream>
using namespace std;const int N = 1e5 + 10;
int n;
long long arr[N];
long long dp[N];int main()
{cin >> n;for(int i = 1; i <= n; i++){cin >> arr[i];}for(int i = 3; i <= n; i++){dp[i] = max(dp[i - 1], dp[i - 3] + arr[i - 1]);}cout << dp[n] << endl;return 0;
}
5.3 过桥(BFS)
- 题目链接: 过桥
- 题目描述:
- 解法:
- 算法思路:类似层序遍历的思想。
- C++ 算法代码:
#include <iostream>
using namespace std;const int N = 2010;
int n;
int arr[N];int bfs()
{int left = 1;int right = 1;int ret = 0;while(left <= right){ret++;int r = right;for(int i = left; i <= right; i++){r = max(r, arr[i] + i);if(r >= n){return ret;}}left = right + 1;right = r;}return -1;
}int main()
{cin >> n;for(int i = 1; i <= n; i++){cin >> arr[i];}cout << bfs() << endl;return 0;
}
6. Day42
6.1 最大差值(模拟 + 贪心)
- 题目链接: MT1 最大差值
- 题目描述:
- 解法:
- 算法思路:遍历数组的过程中,使用一个变量标记⼀下当前位置之前所有元素的最小值即可。
- C++ 算法代码:
class Solution {public:int getDis(vector<int>& arr, int n) {int ret = 0;int minPrev = arr[0];for (int i = 1; i < n; i++) {minPrev = min(minPrev, arr[i]);ret = max(ret, arr[i] - minPrev);}return ret;}
};
6.2 兑换零钱(动态规划 - 完全背包)
- 题目链接: DP44 兑换零钱
- 题目描述:
- 解法:
- 算法思路:完全背包问题。
- C++ 算法代码:
#include <iostream>
#include <cstring>
using namespace std;const int N = 10010, M = 5010;
int n, aim;
int arr[N];
int dp[M];int main()
{cin >> n >> aim;for (int i = 1; i <= n; i++){cin >> arr[i];}memset(dp, 0x3f, sizeof dp);dp[0] = 0;for (int i = 1; i <= n; i++) {for (int j = arr[i]; j <= aim; j++) {dp[j] = min(dp[j], dp[j - arr[i]] + 1);}}if (dp[aim] >= 0x3f3f3f3f){cout << -1 << endl;}else{cout << dp[aim] << endl;}return 0;
}
6.3 小红的子串(前缀和 + 双指针)
- 题目链接: 小红的子串
- 题目描述:
- 解法:
- 算法思路:
- 利用前缀和的思想,求种类个数在 [l, r] 区间内子串的个数,等于求 [1, r] 区间内个数 - [1, l - 1] 区间内个数。
- 求种类个数在 [1, count] 区间内子串的个数,可以用滑动窗口来求解。
- 算法思路:
- C++ 算法代码:
#include <iostream>
#include <string>
using namespace std;int n, l, r;
string s;// 找出字符种类在 [1, x] 之间的⼦串的个数
long long find(int x)
{if(x == 0){return 0;}// 滑动窗⼝int left = 0;int right = 0;int hash[26] = { 0 }int kinds = 0; // 统计窗⼝内字符种类的个数long long ret = 0;while(right < n){if(hash[s[right] - 'a']++ == 0){kinds++;}while(kinds > x){if(hash[s[left] - 'a']-- == 1){kinds--;}left++;}ret += right - left + 1;right++;}return ret;
}int main()
{cin >> n >> l >> r >> s;cout << find(r) - find(l - 1) << endl;return 0;
}
相关文章:
笔试强训题(7)
目录 1. Day371.1 旋转字符串(字符串)1.2 合并k个已排序的链表(链表)1.3 滑雪(记忆化搜索) 2. Day382.1 天使果冻(递推 DP)2.2 dd爱旋转(模拟)2.3 小红取数&…...
2023-2024总结记录
概括经历 这一年算是一个人生节点,2023年花了一整年的时间在准备考研,基本上等于一个人奋战,我不怎么去图书馆,只呆在无人的实验室,还好有对象陪我,不然可能要抑郁了。作息上还是很随意,什么时…...
类初始化、类加载、垃圾回收---JVM
创建对象过程 类加载 一个类从被加载到虚拟机内存中开始,到从内存中卸载,整个生命周期需要经过七个阶段:加载 、验证、准备、解析、初始化、使用和卸载。 类加载过程分为三个主要步骤:加载、链接、初始化 加载:通过…...
交换机与ARP
交换机与 ARP(Address Resolution Protocol,地址解析协议) 的关系主要体现在 局域网(LAN)内设备通信的地址解析与数据帧转发 过程中。以下是二者的核心关联: 1. 基本角色 交换机:工作在 数据链…...
元宇宙概念下,UI 设计如何打造沉浸式体验?
一、元宇宙时代UI设计的核心趋势 在元宇宙概念下,UI设计的核心目标是打造沉浸式体验,让用户在虚拟世界中感受到身临其境的交互效果。以下是元宇宙时代UI设计的几个核心趋势: 沉浸式体验设计 元宇宙的核心是提供沉浸式体验,UI设计…...
pycharm 有智能提示,但是没法自动导包,也就是alt+enter无效果
找到file->settings->editor->inspections 把python勾选上,原来不能用是因为只勾选了一部分。...
神经网络与深度学习:案例与实践——第三章(3)
神经网络与深度学习:案例与实践——第三章(3)——基于Softmax回归完成鸢尾花分类任务 实践流程主要包括以下7个步骤:数据处理、模型构建、损失函数定义、优化器构建、模型训练、模型评价和模型预测等, ①数据处理&am…...
LeetCode 249 解法揭秘:如何把“abc”和“bcd”分到一组?
文章目录 摘要描述痛点分析 & 实际应用场景Swift 题解答案可运行 Demo 代码题解代码分析差值是怎么来的?为什么加 26 再 %26? 示例测试及结果时间复杂度分析空间复杂度分析总结 摘要 你有没有遇到过这种情况:有一堆字符串,看…...
【Kafka基础】topic命令行工具kafka-topics.sh:基础操作命令解析
Kafka作为分布式流处理平台的核心组件,其主题管理是每个开发者必须掌握的关键技能。本文将详细解析kafka-topics.sh工具的使用技巧,从基础操作操作开始,助您轻松驾驭Kafka主题管理。 1 创建主题 /export/home/kafka_zk/kafka_2.13-2.7.1/bin/…...
C++ 排序(1)
以下是一些插入排序的代码 1.插入排序 1.直接插入排序 // 升序 // 最坏:O(N^2) 逆序 // 最好:O(N) 顺序有序 void InsertSort(vector<int>& a, int n) {for (int i 1; i < n; i){int end i - 1;int tmp a[i];// 将tmp插入到[0,en…...
Business English Certificates (BEC) 高频词汇学习
Business English Certificates {BEC} 高频词汇 References Cambridge English: Business Certificates, also known as Business English Certificates (BEC), are a suite of three English language qualifications for international business. abandon /əˈbndən/ vt. …...
信息系统项目管理中各个知识领域的概要描述及其管理流程
1. 立项管理 涵义:评估项目可行性,决定是否启动。 流程: 需求分析:识别业务需求或问题。 可行性研究:技术、经济、法律等可行性分析。 项目建议书:提交初步方案。 立项评审:高层审批。 项目…...
OpenAI推出PaperBench
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
基于LSTM的文本分类2——文本数据处理
前言 由于计算机无法认识到文字内容,因此在训练模型时需要将文字映射到计算机能够识别的编码内容。 映射的流程如下: 首先将文字内容按照词表映射到成唯一的数字ID。比如“我爱中国”,将“中”映射为1,将“国”映射到2。再将文…...
神经网络与深度学习:案例与实践——第三章(2)
神经网络与深度学习:案例与实践——第三章(2) 基于Softmax回归的多分类任务 Logistic回归可以有效地解决二分类问题,但在分类任务中,还有一类多分类问题,即类别数 C大于2 的分类问题。Softmax回归就是Log…...
Maven/Gradle的讲解
一、为什么需要构建工具? 在理解 Maven/Gradle 之前,先明确它们解决的问题: 依赖管理:项目中可能需要引入第三方库(如 Spring、JUnit 等),手动下载和管理这些库的版本非常麻烦。标…...
常见的HR面问题汇总
⚠️注意:以下仅是个人对问题的参考,具体情况视个人情况而定~ 1. 你觉得你有哪些优点和缺点? 优点:学习能力强,遇到问题会主动思考和查找解决方案;有责任心,对待工作认真负责&#…...
把握数据治理关键,释放企业数据潜能
数据治理是对数据资产管理行使权力和控制的活动集合,以下是关于它的详细介绍: 一、定义 数据治理是指从使用零散数据变为使用统一主数据、从具有很少或没有组织和流程治理到企业范围内的综合数据治理、从尝试处理主数据混乱状况到主数据井井有条的一个…...
优化 Web 性能:处理非合成动画(Non-Composited Animations)
在 Web 开发中,动画能够增强用户体验,但低效的动画实现可能导致性能问题。Google 的 Lighthouse 工具在性能审计中特别关注“非合成动画”(Non-Composited Animations),指出这些动画可能增加主线程负担,影响…...
房地产之后:探寻可持续扩张的产业与 GDP 新思
在经济发展的长河中,房地产长期占据着支柱产业的重要地位。其之所以能担当此重任,根源在于它深度嵌入了人们的生活与经济体系。住房,作为人类最基本的需求之一,具有不可替代的刚性。与其他现买按需生产的产业不同,房地产有着独特的消费逻辑。人们为了拥有一个稳定的居住之…...
Chapter02_数字图像处理基础
文章目录 图像的表示⭐模拟图像→数字图像均匀采样和量化均匀采样均匀量化 非均匀采样和量化 数字图像的表示二值图像灰度图像彩色图像 ⭐空间分辨率和灰度分辨率空间分辨率灰度分辨率 ⭐图像视觉效果影响因素采样数变化对图像视觉效果的影响空间分辨率变化对图像视觉效果的影响…...
【Android】UI开发:XML布局与Jetpack Compose的全面对比指南
随着Google推出Jetpack Compose这一现代化工具,我们面临一个关键选择:继续使用传统的XML布局,还是转向Compose? 一、语法对比:两种不同的构建方式 1. XML布局:基于标签的静态结构 XML通过嵌套标签定义UI元…...
浙大:LLM具身推理引擎Embodied-Reasoner
📖标题:Embodied-Reasoner: Synergizing Visual Search, Reasoning, and Action for Embodied Interactive Tasks 🌐来源:arXiv, 2503.21696 🌟摘要 🔸深度思维模型的最新进展已经证明了数学和编码任务的…...
form+ffmpeg+opus录音压缩音频
说明: formffmpegopus录音压缩音频 效果图: step1:opus格式录音 C:\Users\wangrusheng\RiderProjects\WinFormsApp11\WinFormsApp11\Form1.cs using System; using System.Diagnostics; using System.IO; using System.Windows.Forms;namespace WinFo…...
win10 笔记本电脑安装 pytorch+cuda+gpu 大模型开发环境过程记录
win10 笔记本电脑安装 pytorchcudagpu 大模型开发环境过程记录 文章部分内容参考 deepseek。 以下使用命令行工具 mingw64。 安装 Anaconda 安装位置: /c/DEVPACK/Anaconda3 然后安装 Python 3.10.16 (略) $ conda create -n pytorch_…...
LeetCode 2442:统计反转后的不同整数数量
目录 核心思想:数字的“拆分”与“重组” 分步拆解(以输入 123 为例) 关键操作详解 为什么能处理中间或末尾的0? 数学本质 总结 题目描述 解题思路 代码实现 代码解析 复杂度分析 示例演示 总结 核心思想:…...
获取inode的完整路径包含挂载的路径
一、背景 在之前的博客 缺页异常导致的iowait打印出相关文件的绝对路径-CSDN博客 里的 2.2.3 一节和 关于inode,dentry结合软链接及硬链接的实验-CSDN博客 里,我们讲到了在内核里通过inode获取inode对应的绝对路径的方法。对于根目录下的文件而言&#…...
解决上传PDF、视频、音频等格式文件到FTP站点时报错“将文件复制到FTP服务器时发生错误。请检查是否有权限将文件放到该服务器上”问题
一、问题描述 可以将文本文件(.txt格式),图像文件(.jpg、.png等格式)上传到我们的FTP服务器上;但是上传一些PDF文件、视频等文件时就会报错“ 将文件复制到FTP服务器时发生错误。请检查是否有权限将文件放到该服务器上。 详细信息: 200 Type set to l. 227 Entering Pas…...
git push
在 git push 命令中,分支名称的顺序和含义非常重要。其基本格式如下: git push <remote> <local_branch>:<remote_branch>各部分解释 <remote>:远程仓库的名称(如 origin)。<local_branc…...
Java中的四大引用类型详解
Java中的四大引用类型详解:强引用、软引用、弱引用、虚引用 1. 引用类型概览 Java提供了四种不同强度的引用类型,用于控制对象的生命周期和垃圾回收行为: 引用类型回收时机典型应用场景是否影响GC强引用永不回收(除非断开引用&…...
MySQL慢查询日志通俗指南
🍀 前言 如果你发现自己新写或者重写的接口查询速度变慢,你怎么定位原因呢?可以用explain分析我们的SQL原生代码,又或者可以考虑使用MySQL慢查询日志。这篇文章主要讲述什么是慢查询日志以及开发中可能用到的场景。 但是&#x…...
Kafka 如何保证消息可靠性?
Kafka 保证消息可靠性主要通过以下几个机制来实现,从生产者到消费者的整个链路上都设计了相应的保障措施: 1. 生产者(Producer)端的可靠性 ✅ a. acks 参数(确认机制) acks0:生产者不等待任何…...
【嵌入式系统设计师】知识点:第2章 嵌入式系统硬件基础知识
提示:“软考通关秘籍” 专栏围绕软考展开,全面涵盖了如嵌入式系统设计师、数据库系统工程师、信息系统管理工程师等多个软考方向的知识点。从计算机体系结构、存储系统等基础知识,到程序语言概述、算法、数据库技术(包括关系数据库、非关系型数据库、SQL 语言、数据仓库等)…...
C++重载运算符的本质
C 中运算符重载的本质就是函数调用,编译器会将运算符表达式转换为对特定函数的直接调用。以下是具体原理和实现细节: 1. 运算符重载的底层实现 当重载一个运算符(如 、、<<)时,实际上是在定义一个特殊名称的函数…...
Python解决“数字插入”问题
Python解决“数字插入”问题 问题描述测试样例解题思路代码 问题描述 小U手中有两个数字 a 和 b。第一个数字是一个任意的正整数,而第二个数字是一个非负整数。她的任务是将第二个数字 b 插入到第一个数字 a 的某个位置,以形成一个最大的可能数字。 你…...
深入讲解:智能合约中的读写方法
前言 在探秘区块链开发:智能合约在 DApp 中的地位及与传统开发差异一文中我提到对于智能合约中所有的写入其实都算是交易。而在一个完整的智能合约代码中最大的两个组成部分就是读取和写入。 本文将为你深入探讨该两者方法之间的区别。 写方法 写方法其实就是对区块链这一…...
Java进阶之旅-day05:网络编程
引言 在当今数字化的时代,网络编程在软件开发中扮演着至关重要的角色。Java 作为一门广泛应用的编程语言,提供了强大的网络编程能力。今天,我们深入学习了 Java 网络编程的基础知识,包括基本的通信架构、网络编程三要素、IP 地址、…...
Eliet Chat开发日志:信令服务器注册与通信过程
目录 1. 架构设计:信令服务器与客户端 2. 选择技术栈 3. 实现信令服务器 4. 客户端实现 5. 测试 6. 下一步计划 日期:2025年4月5日 今天的工作重点是实现两个设备通过信令服务器注册并请求对方公网地址信息,以便能够进行点对点通信。我…...
如何设计一个本地缓存
想获取更多高质量的Java技术文章?欢迎访问Java技术小馆官网,持续更新优质内容,助力技术成长 Java技术小馆官网https://www.yuque.com/jtostring 如何设计一个本地缓存 随着系统的复杂性和数据量的增加,如何快速响应用户请求、减…...
2024版idea使用Lombok时报找不到符号
今天在springboot项目中使用Lombok的Builder注解,启动时居然报了找不到符号的错,如下图 于是开始了漫长的寻找之路,首先去settings->Plugins中看自己的Lombok插件是否启动,发现确实是如此,然后看网上的教程去加上这…...
[Android安卓移动计算]:新建项目和配置环境步骤
文章目录 一:AndroidStudio 创建项目1. New Project2. 选择:Empty Activity 二:配置和下载SDK点击SDK 配置按钮选择API32和Android 9.0(Pie)再点击Apply点击接受条款声明进行安装 安装完后点击NEXT和OK出现:…...
$R^n$平面约束下的向量列
原向量: x → \overset{\rightarrow}{x} x→ 与 x → \overset{\rightarrow}{x} x→法向相同的法向量(与 x → \overset{\rightarrow}{x} x→同向) ( x → ⋅ n → ∣ n → ∣ 2 ) n → (\frac{\overset{\rightarrow}x\cdot\overset{\righta…...
混合编程的架构
在混合使用QML和Qt Widgets的环境中,是否必须严格遵循分层架构需要根据项目规模和复杂度来决定。以下是具体的决策指南和实施建议: 一、分层架构的适用性分析 #mermaid-svg-61Mlp9MrpFOoZPAO {font-family:"trebuchet ms",verdana,arial,sans…...
联网汽车陷入网络安全危机
有人能够入侵并控制汽车这一事实本身就令人恐惧,电影中的场景变成了现实。再加上汽车中的软件会处理和存储我们的个人数据,这种恐惧达到了一个新的高度。 一旦发生安全漏洞,我们的驾驶数据、联系人、通话记录、消息甚至位置信息等信息都可能…...
基于Spark的招聘数据预测分析推荐系统
【Spark】基于Spark的招聘数据预测分析推荐系统 (完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统能够高效处理海量招聘数据,利用Spark的强大计算能力实现快速分析和预测。该系…...
基于Spark的酒店数据分析系统
【Spark】基于Spark的酒店数据分析系统 (完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 本项目基于Python语言开发,借助Django进行后台框架的开发,搭建大数据虚拟机集群…...
网络安全L2TP实验
在FW1上,将接口g1/0/0添加进去trust区域 [USG6000V1]firewall zone trust [USG6000V1-zone-trust]add interface GigabitEthernet 1/0/0 在放通安全策略 在FW2上配置ip [USG6000V1]int g1/0/1 [USG6000V1-GigabitEthernet1/0/1]ip address 20.1.1.1 24 [USG6000…...
18.1.go连接redis
开发调试 Tiny RDM:跨平台GUI工具windows版本下载 https://download.csdn.net/download/chxii/90562932 支持多种格式查看:内置高级文本代码编辑器,支持语法高亮/代码折叠/错误提示 便捷搜索过滤:使用正则匹配搜索键后,仍可进行二级过滤,组合筛选数据更方便 调试分析…...
innodb如何实现mvcc的
InnoDB 实现 MVCC(多版本并发控制)的机制主要依赖于 Undo Log(回滚日志)、Read View(读视图) 和 隐藏的事务字段。以下是具体实现步骤和原理: 1. 核心数据结构 InnoDB 的每一行数据(…...
递归实现组合型枚举(DFS)
从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。 输入格式 两个整数 n,m,在同一行用空格隔开。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行内的数升序排列,相邻两个数用一个空格隔开。…...