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学习的笔记,包含一些视频外的扩展知识。 有问题的源码 #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代码和模型,如果需要做到离线部署、运行,就必须要将代码和模型打包为可独立运行的可执行文件。 使用pyinstaller就能做到这个,相同的代码,在windows上运行就能打包为exe,在linux上运行就能打包为…...
软考中级—— 操作系统知识
进程管理 操作系统概述 操作系统的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境。 操作系统的特征:并发性、共享性、虚拟性、不确定性。 操作系统的功能:进程管理、存储管理、文件管理、设备…...
我们是否真的需要k8s?
文章目录 背景k8s相关的讨论为什么要用k8sk8s带来了什么当前业务使用到k8s的核心优势了吗直接自己买服务器会不会更便宜?其他QA没有人可以说出来为什么一定要用k8s而不是其他的没有人可以解释为什么成本核算困难以及成本这么高的原因没有人给出面向C端,面…...
基于蜉蝣优化的BP神经网络(分类应用) - 附代码
基于蜉蝣优化的BP神经网络(分类应用) - 附代码 文章目录 基于蜉蝣优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蜉蝣优化BP神经网络3.1 BP神经网络参数设置3.2 蜉蝣算法应用 4.测试结果:5.M…...
前端系列-1 HTML+JS+CSS基础
背景: 前端系列会收集碎片化的前端知识点,作为自己工作和学习时的字典,欢迎读者收藏和使用。 笔者是后端开发😶前端涉猎不深,因此文章重在广度和实用,对原理和性能不会过多深究。 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. 前言 近年来,跨域传输被应用于无监督图像恢复任务中。但是,直接应用已有的框架…...
1.4.C++项目:仿muduo库实现并发服务器之buffer模块的设计
项目完整版在: 一、buffer模块: 缓冲区模块 Buffer模块是一个缓冲区模块,用于实现通信中用户态的接收缓冲区和发送缓冲区功能。 二、提供的功能 存储数据,取出数据 三、实现思想 1.实现换出去得有一块内存空间,采…...
AndroidStudio精品插件集
官网 项目地址:Github博客地址:Studio 精品插件推荐 使用需知 所有插件在 Android Studio 2022.3.1.18(长颈鹿)上测试均没有问题,推荐使用此版本Android Studio 2022.3.1.18(长颈鹿)正式版下…...
java图书管理系统
一、 引言 图书管理系统是一个用于图书馆或书店管理图书信息、借阅记录和读者信息的应用程序。本系统使用Java Swing框架进行开发,提供直观的用户界面,方便图书馆管理员或书店工作人员对图书信息进行管理。以下是系统的设计、功能和实现的详细报告。 二…...
大屏自适应容器组件-Vue3+TS
1.引言 在做数字大屏时,图表能跟着浏览器的尺寸自动变化,本文采用Vue3前端框架,采用TypeScript语言,封装了一个大屏自适应组件,将需要显示的图表放入组件的插槽中,就能实现自适应屏幕大小的效果。 2.实际…...
java图书信息管理
一、项目概述 本图书信息管理系统旨在提供一个直观的用户界面,用于管理图书馆或书店的图书信息。系统包括图书添加、查询、借阅和归还等功能。 二、系统架构 系统采用JavaSwing作为前端UI框架,后端使用Java Servlet处理业务逻辑,数据存储在…...
apache服务器出现No input file specified.解决方案
APACHE服务器出现No input file specified.解决方案 thinkcmf程序默认的.htaccess里面的规则: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA…...
你写过的最蠢的代码是?——全栈开发篇
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
正点原子嵌入式linux驱动开发——TF-A初探
上一篇笔记中,正点原子的文档简单讲解了一下什么是TF-A,并且也学习了如何编译TF-A。但是TF-A是如何运行的,它的一个运行流程并未涉及。TF-A的详细运行过程是很复杂的,涉及到很多ARM处理器底层知识,所以这一篇笔记的内容…...
【网安别学成开发】之——python篇
经典入门编程题 1.猜数字 经典的猜数字游戏,几乎所有人学编程时都会做。 功能描述: 随机选择一个三位以内的数字作为答案。用户输入一个数字,程序会提示大了或是小了,直到用户猜中。 #!/usr/bin/env python3import randomresu…...
vue图片显示
一、Vue图片显示方法: 1.直接使用<img>标签: 最简单的方法是使用<img>标签,并将图片的URL作为src属性的值。例如: <img src"path/to/your/image.jpg" alt"Image"> 如果是绝对路径&#x…...
S32K144 GPIO编程
前面的文章介绍了如何在MDK-Keil下面进行S32K144的开发,下面就使用该工程模板进行GPIO LED的编程试验。 1. 开发环境 S32K144EVB-Q100开发板MDK-Keil Jlink 2. 硬件连接 S32K144EVB-Q100开发板关于LED的原理图如下: 也就是具体连接关系如下…...
域名备案流程(个人备案,腾讯云 / 阿里云)
文章目录 1.网站备案的目的2.备案准备的材料2.1 网站域名2.2 云资源或备案授权码2.3 电子材料 3.首次个人备案准备的材料3.1 主体相关3.2 域名相关3.3 网站相关3.4 网站服务相关3.5 变更相关 4.个人备案流程4.1 登录系统4.2 填写备案信息🍀 填写备案省份ἴ…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
