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 填写备案信息🍀 填写备案省份ἴ…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
