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

C/C++ 数组面试算法题

1.将一个数组逆序输出

https://blog.csdn.net/qq_45385706/article/details/110739961

1 #include<stdio.h>2 3 #define N 94 5 int main()6 {7     int a[N] = {1,2,3,4,5,6,7,8,9};8     for(int i = 0;i<N/2;i++)9     {
10         int temp = a[i];
11         a[i] = a[N-1-i];
12         a[N-1-i] = temp;
13     }
14     
15     for(int i = 0;i<N;i++)
16     {
17         printf("%d ",a[i]);
18     }
19     
20     return 0;
21 }

C++实现:

1 #include <iostream>2 #include <vector>3 #include <algorithm>4 using namespace std;5 6 int main() {7    8    vector<int> ans = {1,2,3,4,5,6};9    reverse(ans.begin(),ans.end());
10    for(int i = 0;i<ans.size();i++){
11       cout << ans[i] << " ";
12    }
13 
14    return 0;
15 }

2.有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

 https://blog.csdn.net/qq_45385706/article/details/110739053

 1 #include<stdio.h>2 3 int main()4 {5     int x,temp,top;6     int a[11]={1,4,6,9,13,16,19,28,40,100};7     printf("输入一个数\n");8     scanf("%d",&x);9     for(int i = 0;i<10;i++)
10     {
11         if(x < a[i])
12         {
13             temp = a[i];
14             a[i] = x;
15             for(int j = i+1;j<11;j++)
16             {
17                 top = a[j];
18                 a[j] = temp;
19                 temp = top;
20             }
21             break;
22         }
23     }
24     
25     for(int i = 0;i<11;i++)
26     {
27         printf("%d ",a[i]);
28     }
29     
30     return 0;
31 }

3.九十度旋转矩阵

 https://blog.csdn.net/weixin_46617214/article/details/124230458

1 #include<stdio.h>2 
3 #define N 3
4 #define M 3
5 
6 int main()
7 {
8     int a[M][N] = {{1,2,3},{4,5,6},{7,8,9}};
9     
10     for(int i = 0;i<N;i++)
11     {
12         for(int j = i;j<M;j++)
13         {
14             int temp = a[i][j];
15             a[i][j] = a[j][i];
16             a[j][i] = temp;
17         }
18     }
19     
20     for(int i = 0;i<N;i++)
21     {
22         for(int j = 0;j<M/2;j++)
23         {
24             int temp = a[i][j];
25             a[i][j] = a[i][M-1-j];
26             a[i][M-1-j] = temp;
27         }
28     }
29     
30     for(int i = 0;i<N;i++)
31     {
32         for(int j = 0;j<M;j++)
33         {
34             printf("%d ",a[i][j]);
35         }
36         printf("\n");
37     }
38     
39     return 0;
40 }

C++实现:

1 #include <iostream>2 #include <vector>3 using namespace std;4 5 class node{6 public:7     vector<vector<int>> longset(vector<vector<int>>& ans){8          int x = 0,y = ans.size()-1;9          while(x<y){
10            swap(ans[x++],ans[y--]);
11          }
12          for(int i = 0;i<ans.size();i++){
13              for(int j = 0;j<i;j++){
14                  swap(ans[i][j],ans[j][i]);
15              }
16          }
17          return ans;
18     }
19 };
20 
21 int main() {
22    
23    node n;
24    vector<vector<int>> ans;
25    ans.push_back({1,2,3});
26    ans.push_back({4,5,6});
27    ans.push_back({7,8,9});
28    ans = n.longset(ans);
29    for(int i = 0;i<ans.size();i++){
30        for(int j = 0;j<ans[0].size();j++){
31           cout << ans[i][j] << " ";
32        }
33        cout << endl;
34    }
35 
36    return 0;
37 }

4.给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。

https://blog.csdn.net/Mu_Muxi_/article/details/120708455

1 #include <stdio.h>2 3 #define N 34 #define M 35 6 int main()7 {8     int a[N][M] = {{1,1,1},{1,0,1},{1,1,1}};9     int b[10],c[10];
10     for(int i = 0;i<N;i++)
11     {
12         for(int j = 0;j<M;j++)
13         {
14             if(a[i][j] == 0)
15             {
16                 b[i] = 1;
17                 c[j] = 1;
18             }
19         }
20     }
21     
22     for(int i = 0;i<N;i++)
23     {
24         if(1 == b[i])
25         {
26             for(int j = 0;j<M;j++)
27             {
28                 a[i][j] = 0;
29                 if(1 == c[j])
30                 {
31                     for(int k = 0;k<M;k++)
32                     {
33                         a[k][j] = 0;
34                     }
35                 }
36             }
37         }
38     }
39     
40     for(int i = 0;i<N;i++)
41     {
42         for(int j = 0;j<M;j++)
43         {
44             printf("%d ",a[i][j]);
45         }
46         printf("\n");
47     }
48 
49     return 0;
50 }

C++实现:

1 #include <iostream>2 #include <vector>3 using namespace std;4 5 class node{6 public:7     vector<vector<int>> longget(vector<vector<int>>& ans){8          int m = ans.size(),n = ans[0].size();9          for(int i = 0;i<m;i++){
10              for(int j = 0;j<n;j++){
11                  if(0 == ans[i][j]){
12                     ans[0][j] = ans[i][0] = 0;
13                  } 
14              }
15          }
16          for(int i = 1;i<m;i++){
17              for(int j = 1;j<n;j++){
18                  if(ans[0][j]==0 || ans[i][0]==0){
19                     ans[i][j] = 0;    
20                  }
21              }
22          }
23          return ans;
24     }
25 };
26 
27 int main() {
28    
29     node n;
30     vector<vector<int>> ans;
31     ans.push_back({1,1,1});
32     ans.push_back({1,0,1});
33     ans.push_back({1,1,1});
34     ans = n.longget(ans);
35     for(int i = 0;i<ans.size();i++){
36         for(int j = 0;j<ans[0].size();j++){
37            cout << ans[i][j] << " ";
38         }
39         cout << endl;
40     }
41 
42     return 0;
43 }

5.搜索二维矩阵

https://blog.csdn.net/qq_47406941/article/details/110091759

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:

  • 每行中的整数从左到右按升序排列。

  • 每行的第一个整数大于前一行的最后一个整数。

1 #include <stdio.h>2 3 #define N 34 #define M 45 6 int main()7 {8     int x,i = 0,j = M -1;9     int a[N][M] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
10     printf("输入一个要查找的数\n");
11     scanf("%d",&x);
12     while(1)
13     {
14         if(x == a[i][j])
15         {
16             printf("找到了\n");
17             break;
18         }
19         else if(x > a[i][j])
20         {
21             if(i < N-1)
22             {
23                 i++;
24             }
25             else
26             {
27                 printf("没找到\n");
28                 break;   
29             }
30         }
31         else
32         {
33             if(j > 0)
34             {
35                 j--;
36             }
37             else
38             {
39                 printf("没找到\n");
40                 break;   
41             }
42         }
43     }
44 
45     return 0;
46 }

c++实现:

1 #include <iostream>2 #include <vector>3 using namespace std;4 5 class node{6 public:7      bool search(vector<vector<int>>& matrix,int target){8         int m = matrix.size(),n = matrix[0].size();9         int l = 0,r = m*n-1;
10         while(l<r){
11            int mid = l + (r-l)/2;
12            if(matrix[mid/n][mid%n]>=target) r = mid;
13            else l = mid + 1;
14         }
15         return matrix[r/n][r%n] == target;
16      }
17 };
18 
19 int main(){
20 
21    node n;
22    vector<vector<int>> cur;
23    cur.push_back({1,3,5,7});
24    cur.push_back({10,11,16,20});
25    cur.push_back({23,30,34,60});
26    cout << n.search(cur,11) << endl;
27    
28    return 0;
29 }

6.两数之和

输入一个数为数组里面两个数之和。

https://blog.csdn.net/weixin_43176384/article/details/86373778

1 #include <stdio.h>2 #include <string.h>3 4 #define N 45 6 int main() 7 {8     int i = 0,j = 0,x = 0,z = 0,y = 0;9     int a[N]={2,7,11,15};
10     printf("输入一个数是数组两数之和\n");
11     scanf("%d",&x);
12     for(i = 0;i<N-1;i++)
13     {
14         for(j = i+1;j<N-1;j++)
15         {
16             if(x == a[i]+a[j])
17             {
18                 z = i;
19                 y = j;
20                 break;
21             }
22         }
23     }
24     printf("%d+%d之和为%d\n",a[z],a[y],x);
25     
26     return 0;
27 }

 C++实现:

1 #include<iostream>2 #include<vector>3 #include<unordered_map>4 using namespace std;5 6 class node{7 public:8     vector<int> twosun(vector<int>& nums,int target)9     {
10         unordered_map<int,int> record;
11         for(int i = 0;i<nums.size();i++){
12             int num = target - nums[i];
13             if(record.find(num) != record.end()){
14                 return {record[num],i};
15             }
16             record[nums[i]] = i;
17         }
18         return {-1,-1};
19     }
20 };
21 
22 int main()
23 {
24     node n;
25     vector<int> cur;
26     vector<int> nums = {2,7,11,15};
27     cur = n.twosun(nums,9);
28     for (auto i : cur)
29         cout << i << endl;
30 
31     return 0;
32 }

7.顺时针打印二维数组

https://blog.csdn.net/qq_44443986/article/details/109738061

1 #include <stdio.h>2 #include <string.h>3 4 #define N 35 #define M 36 7 int main() 8 {9     int arr[N][M] = {{1,2,3},{4,5,6},{7,8,9}};
10     int a = 0,b = N-1,c = 0,d = M-1,k = 0;
11     while(1)
12     {
13         for(int i = a;i<=b;i++)
14         {
15             printf("%d ",arr[c][i]);
16         }
17         if(c++ > d)break;
18         
19         for(int i = c;i<=d;i++)
20         {
21             printf("%d ",arr[i][b]);
22         }
23         if(b-- < a)break;
24         
25         for(int i = b;i>=a;i--)
26         {
27             printf("%d ",arr[d][i]);
28         }
29         if(d-- < c)break;
30         
31         for(int i = d;i>=c;i--)
32         {
33             printf("%d ",arr[i][a]);
34         }
35         if(a++ > b)break;
36     }
37     
38     return 0;
39 }

c++实现:

1 #include <iostream>2 #include <vector>3 using namespace std;4 5 class node{6 public:7      vector<int> setzore(vector<vector<int>>& cur){8         int m = cur.size(),n = cur[0].size();9         int up = 0,down = m-1,left = 0,right = n-1;
10         vector<int> ans;
11         while(1){
12            for(int i = left;i<=right;i++) ans.push_back(cur[up][i]);
13            if(++up>down) break;
14            for(int i = up;i<=down;i++) ans.push_back(cur[i][right]);
15            if(--right<left) break;
16            for(int i = right;i>=left;i--) ans.push_back(cur[down][i]);
17            if(--down<up) break;
18            for(int i = down;i>=up;i--) ans.push_back(cur[i][left]);
19            if(++left>right) break;
20         }
21          return ans;
22      }
23 };
24 
25 int main(){
26 
27    node n;
28    vector<int> ans;
29    vector<vector<int>> cur;
30    cur.push_back({1,2,3});
31    cur.push_back({4,5,6});
32    cur.push_back({7,8,9});
33    ans = n.setzore(cur);
34    for(int i = 0;i<ans.size();i++)
35        cout << ans[i] << " ";
36    
37    return 0;
38 }

8.三数之和(力扣15题) 

1 #include <iostream>2 #include <vector>3 #include<algorithm>4 using namespace std;5 6 class node{7 public:8     vector<vector<int>> threesum(vector<int>& nums){9         vector<vector<int>>ans;
10         sort(nums.begin(),nums.end());
11         for(int i = 0;i<nums.size();i++){
12             if(i>0 && nums[i] == nums[i+1]) continue;
13             int l = i+1,r = nums.size() -1;
14             int target = 0 - nums[i];
15             while(l<r){
16                 if(nums[l]+nums[r]==target){
17                     ans.push_back({nums[i],nums[l],nums[r]});
18                     while(l<r && nums[l] == nums[l+1]) l++;
19                     while(l<r && nums[r] == nums[r-1]) r--;
20                     l++,r--;
21                 }else if(nums[l]+nums[r]>target){
22                     r--;
23                 }else{
24                     l++;
25                 }
26             }
27         }
28         return ans;
29     }
30 };
31 
32 int main() 
33 {
34     node n;
35     vector<vector<int>> cur;
36     vector<int> nums = {-1,0,1,2,-1,-4};
37     cur = n.threesum(nums);
38     int x = cur[0].size(),y = cur.size();
39     for(int i = 0;i<y;i++){
40         for(int j = 0;j<x;j++){
41             cout << cur[i][j];
42         }
43         cout << endl;
44     }
45     
46     return 0;
47 }

9.四数之和(力扣18题) 

1 #include <iostream>2 #include <vector>3 #include <algorithm>4 using namespace std;5 6 class node{7 public:8     vector<vector<int>> forsun(vector<int>& nums,int target){9         vector<vector<int>> ans;
10         sort(nums.begin(),nums.end());
11         for(int i = 0;i<nums.size();i++){
12             if(i>0 && nums[i] == nums[i-1]) continue;
13             for(int j = i+1;j<nums.size();j++){
14                 int l = j+1,r = nums.size()-1;
15                 int sum = target - nums[i] - nums[j];
16                 while(l<r){
17                      if(nums[l]+nums[r] == sum){
18                         ans.push_back({nums[i],nums[j],nums[l],nums[r]});
19                         while(l<r && nums[l] == nums[l+1]) l++;
20                         while(l<r && nums[r] == nums[r-1]) r--;
21                         l++,r--;
22                      }else if(nums[l]+nums[r] > sum){
23                          r--;
24                      }else{
25                          l++;
26                      }
27                 }
28             }
29         }
30         return ans;
31     }
32 };
33 
34 int main()
35 {
36    node n;
37    vector<vector<int>> top;
38    vector<int> cur = {1,0,-1,0,-2,2};
39    top = n.forsun(cur,0);
40    int x = top.size(),y = top[0].size();
41    for(int i = 0;i<x;i++){
42       for(int j = 0;j<y;j++){
43           cout << top[i][j] << " ";
44       }
45        cout << endl;
46    }
47     
48    return 0;
49 }

10.删除数组中的重复元素,使每个元素最毒只能出现2次。(力扣80题)

1 #include <iostream>2 #include <vector>3 using namespace std;4 5 class node1{6 public:7     int remove(vector<int>& nums){8        if(nums.size() <= 2) return nums.size();9        int idx = 1;
10        for(int i = 2;i<nums.size();i++){
11           if(nums[i] != nums[idx-1]){
12               nums[++idx] = nums[i];
13           }
14        }
15         return idx+1;
16     }
17 };
18 
19 int main()
20 {
21    node1 n;
22    vector<int> ans = {1,1,1,2,2,3};
23    cout << n.remove(ans) << endl;
24     
25    return 0;
26 }

11.删除数组中的重复元素,使每个元素最多出现一次(力扣26题)

1 #include <iostream>2 #include <vector>3 using namespace std;4 5 class node1{6 public:7     int remove(vector<int>& nums){8        if(nums.size() <= 2) return nums.size();9        int idx = 0;
10        for(int i = 1;i<nums.size();i++){
11           if(nums[i] != nums[idx]){
12               nums[++idx] = nums[i];
13           }
14        }
15         return idx+1;
16     }
17 };
18 
19 int main()
20 {
21    node1 n;
22    vector<int> ans = {1,1,1,2,2,3};
23    cout << n.remove(ans) << endl;
24     
25    return 0;
26 }

相关文章:

C/C++ 数组面试算法题

1.将一个数组逆序输出 https://blog.csdn.net/qq_45385706/article/details/110739961 1 #include<stdio.h>2 3 #define N 94 5 int main()6 {7 int a[N] {1,2,3,4,5,6,7,8,9};8 for(int i 0;i<N/2;i)9 { 10 int temp a[i]; 11 a[i]…...

【pwn入门】用gdb实现第1个pwn

声明 本文是B站你想有多PWN学习的笔记&#xff0c;包含一些视频外的扩展知识。 有问题的源码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> char sh[]"/bin/sh"; int func(char *cmd){system(cmd);return 0; }int main(){char …...

用pyinstaller打包LGBM模型为ELF/EXE可执行文件

1. 引入 写好的python代码和模型&#xff0c;如果需要做到离线部署、运行&#xff0c;就必须要将代码和模型打包为可独立运行的可执行文件。 使用pyinstaller就能做到这个&#xff0c;相同的代码&#xff0c;在windows上运行就能打包为exe&#xff0c;在linux上运行就能打包为…...

软考中级—— 操作系统知识

进程管理 操作系统概述 操作系统的作用&#xff1a;通过资源管理提高计算机系统的效率&#xff1b;改善人机界面向用户提供友好的工作环境。 操作系统的特征&#xff1a;并发性、共享性、虚拟性、不确定性。 操作系统的功能&#xff1a;进程管理、存储管理、文件管理、设备…...

我们是否真的需要k8s?

文章目录 背景k8s相关的讨论为什么要用k8sk8s带来了什么当前业务使用到k8s的核心优势了吗直接自己买服务器会不会更便宜&#xff1f;其他QA没有人可以说出来为什么一定要用k8s而不是其他的没有人可以解释为什么成本核算困难以及成本这么高的原因没有人给出面向C端&#xff0c;面…...

基于蜉蝣优化的BP神经网络(分类应用) - 附代码

基于蜉蝣优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于蜉蝣优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蜉蝣优化BP神经网络3.1 BP神经网络参数设置3.2 蜉蝣算法应用 4.测试结果&#xff1a;5.M…...

前端系列-1 HTML+JS+CSS基础

背景&#xff1a; 前端系列会收集碎片化的前端知识点&#xff0c;作为自己工作和学习时的字典&#xff0c;欢迎读者收藏和使用。 笔者是后端开发&#x1f636;前端涉猎不深&#xff0c;因此文章重在广度和实用&#xff0c;对原理和性能不会过多深究。 1.html 1.1 html5网页结…...

Learning Invariant Representation for Unsupervised Image Restoration

Learning Invariant Representation for Unsupervised Image Restoration (Paper reading) Wenchao Du, Sichuan University, CVPR20, Cited:63, Code, Paper 1. 前言 近年来&#xff0c;跨域传输被应用于无监督图像恢复任务中。但是&#xff0c;直接应用已有的框架&#xf…...

1.4.C++项目:仿muduo库实现并发服务器之buffer模块的设计

项目完整版在&#xff1a; 一、buffer模块&#xff1a; 缓冲区模块 Buffer模块是一个缓冲区模块&#xff0c;用于实现通信中用户态的接收缓冲区和发送缓冲区功能。 二、提供的功能 存储数据&#xff0c;取出数据 三、实现思想 1.实现换出去得有一块内存空间&#xff0c;采…...

AndroidStudio精品插件集

官网 项目地址&#xff1a;Github博客地址&#xff1a;Studio 精品插件推荐 使用需知 所有插件在 Android Studio 2022.3.1.18&#xff08;长颈鹿&#xff09;上测试均没有问题&#xff0c;推荐使用此版本Android Studio 2022.3.1.18&#xff08;长颈鹿&#xff09;正式版下…...

java图书管理系统

一、 引言 图书管理系统是一个用于图书馆或书店管理图书信息、借阅记录和读者信息的应用程序。本系统使用Java Swing框架进行开发&#xff0c;提供直观的用户界面&#xff0c;方便图书馆管理员或书店工作人员对图书信息进行管理。以下是系统的设计、功能和实现的详细报告。 二…...

大屏自适应容器组件-Vue3+TS

1.引言 在做数字大屏时&#xff0c;图表能跟着浏览器的尺寸自动变化&#xff0c;本文采用Vue3前端框架&#xff0c;采用TypeScript语言&#xff0c;封装了一个大屏自适应组件&#xff0c;将需要显示的图表放入组件的插槽中&#xff0c;就能实现自适应屏幕大小的效果。 2.实际…...

java图书信息管理

一、项目概述 本图书信息管理系统旨在提供一个直观的用户界面&#xff0c;用于管理图书馆或书店的图书信息。系统包括图书添加、查询、借阅和归还等功能。 二、系统架构 系统采用JavaSwing作为前端UI框架&#xff0c;后端使用Java Servlet处理业务逻辑&#xff0c;数据存储在…...

apache服务器出现No input file specified.解决方案

APACHE服务器出现No input file specified.解决方案 thinkcmf程序默认的.htaccess里面的规则&#xff1a; <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA…...

你写过的最蠢的代码是?——全栈开发篇

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

正点原子嵌入式linux驱动开发——TF-A初探

上一篇笔记中&#xff0c;正点原子的文档简单讲解了一下什么是TF-A&#xff0c;并且也学习了如何编译TF-A。但是TF-A是如何运行的&#xff0c;它的一个运行流程并未涉及。TF-A的详细运行过程是很复杂的&#xff0c;涉及到很多ARM处理器底层知识&#xff0c;所以这一篇笔记的内容…...

【网安别学成开发】之——python篇

经典入门编程题 1.猜数字 经典的猜数字游戏&#xff0c;几乎所有人学编程时都会做。 功能描述&#xff1a; 随机选择一个三位以内的数字作为答案。用户输入一个数字&#xff0c;程序会提示大了或是小了&#xff0c;直到用户猜中。 #!/usr/bin/env python3import randomresu…...

vue图片显示

一、Vue图片显示方法&#xff1a; 1.直接使用<img>标签&#xff1a; 最简单的方法是使用<img>标签&#xff0c;并将图片的URL作为src属性的值。例如&#xff1a; <img src"path/to/your/image.jpg" alt"Image"> 如果是绝对路径&#x…...

S32K144 GPIO编程

前面的文章介绍了如何在MDK-Keil下面进行S32K144的开发&#xff0c;下面就使用该工程模板进行GPIO LED的编程试验。 1. 开发环境 S32K144EVB-Q100开发板MDK-Keil Jlink 2. 硬件连接 S32K144EVB-Q100开发板关于LED的原理图如下&#xff1a; 也就是具体连接关系如下&#xf…...

域名备案流程(个人备案,腾讯云 / 阿里云)

文章目录 1.网站备案的目的2.备案准备的材料2.1 网站域名2.2 云资源或备案授权码2.3 电子材料 3.首次个人备案准备的材料3.1 主体相关3.2 域名相关3.3 网站相关3.4 网站服务相关3.5 变更相关 4.个人备案流程4.1 登录系统4.2 填写备案信息&#x1f340; 填写备案省份&#x1f34…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...