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

《妙趣横生的算法》(C语言实现)-第10章算法设计与数据结构面试题精粹

【10-1】输入一个字符串并将它输出,以ctrl+z组合键表示输入完毕,要求将输入的字符串中多于1个的连续空格符合并为1个。

//10-1 2023年12月30日17点11分-17点18分
# include <stdio.h>
int main()
{char c;c = getchar();//scanf("%c", &c);int space = 0;while (c != EOF) {if (c == ' ') {  //遇到空格符时统计空格数目 space++;if (space == 1) {putchar(c);}} else {  //遇到非空格符时清零空格数目 space = 0;putchar(c);  //显示非空格符 }
//        不要用scanf("%c", &c);c = getchar();}return 0;
} 

总结:这类输入流操作的问题可以直接对输入的字符进行判断和处理,无需将输入的字符先保存在数组或者其他数据结构中,这样会非常容易解决。
【10-2】从终端输入10个整数,输出其中最大的数和次大的数。要求输入的10个整数互不相等。

//10-2 2023年12月30日17点25分-17点42分 
# include <stdio.h>
void bubble_sort(int a[], int n)
{for (int i = n-1; i > 0; i--){for (int j = 0; j < i; ++j) {if (a[j] < a[j+1]) {int tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;}}printf("第%d次循环排序后结果:", n-i);for (int k = 0; k < n; k++) {printf("%3d", a[k]);}printf("\n");}
}
int main()
{int arr[10];  //定义一个数组printf("Please input 10 integers:\n"); for (int i = 0; i < 10; i++) {  //输入数据 scanf("%d", &arr[i]);}bubble_sort(arr, 10);  //冒泡排序printf("After sorting:\n");for (int i = 0; i < 10; i++) {  //输出数据 printf("%d ", arr[i]);}printf("\nthe maxest number is %d, the other is %d\n", arr[0], arr[1]); return 0;
} 
//12 43 23 13 65 17 98 45 67 88
//书上的代码
# include <stdio.h>
int main()
{int a, maxVal = -1000, secondVal = -1000;for (int i = 0; i < 10; i++) {scanf("%d", &a);if (a > maxVal) {secondVal = maxVal;maxVal = a;} else {if (a > secondVal) {secondVal = a;}}}printf("The max value is    %d\n", maxVal);  //输出最大的数 printf("The second value is %d\n", secondVal);  //输出次大的数 return 0;
} 

总结:类似上一道题,可以不用保存这10个整数,直接在数据输入的过程中加以控制和比较。
【10-3】编写一个程序,求分数序列的前50项和。

//10-3 2023年12月30日17点50分-17点56分 
# include <stdio.h> 
int main()
{double s = 0.0;double a = 2, b = 1;  //用浮点类型,用int结果就不一样了s += a / b;for (int i = 1; i < 50; ++i) {double tmp = b;b = a;a += tmp;s += a / b;}printf("sum is %g\n", s);return 0;
}

总结:用好数据类型,可以写成函数哦!
【10-4】编写一个函数实现字符串内容逆置,要求不另外开辟字符串空间

//10-4 2023年12月30日18点01分 
# include <stdio.h>
# include <string.h>
void reverse(char *s)
{for (int i = 0, j = strlen(s) - 1; i < j; i++, j--) {char tmp = s[i];s[i] = s[j];s[j] = tmp;}
}
int main()
{char s[200];printf("Please input a string:\n");gets(s);reverse(s);printf("After reversing:\n%s", s);return 0;
}

【10-5】编写一个程序,将两个字符串连接,要求不破坏原有字符串

//10-5 2023年12月30日18点04分-18点10分 
# include <stdio.h>
char * cnnString(char *s1, char *s2)
{char s[400];int len = 0;for (int i = 0; s1[i]; i++) {s[len++] = s1[i];}for (int i = 0; s2[i]; i++) {s[len++] = s2[i];}s[len] = '\0';return s;
}
//书上代码
/*char * cnnString(char *s1, char *s2)
{int len, len1, len2;char *s3;len1 = strlen(s1);len2 = strlen(s2);len = len1 + len2 + 1;s3 = (char *)malloc(len);for (int i = 0; i < len1; i++)s3[i] = s1[i];for (int i = 0; i < len2; i++)s3[i+len1] = s2[i];s3[len-1] = '\0';return s3;
}*/
int main()
{char s1[200], s2[200];printf("Please input a string:\n");gets(s1);printf("Please input a string:\n");gets(s2);char *s;s = cnnString(s1, s2);printf("Connecting:\n%s", s);
//    printf("%s", cnnString(s1, s2));return 0;
} 

总结:我自己写的代码运行时警告:返回了局部变量的地址,要注意!!这是因为在函数里创建的字符串是在栈上创建的,用动态分配,书上的代码就不会有警告。
【10-6】编写一个递归函数,求和。

//10-6 2023年12月30日18点17分-18点20分 
# include <stdio.h>
int sum(int n)
{if (n == 1)return 1;elsereturn n+sum(n-1);
} 
int main()
{int n;printf("Please input a integer:\n");scanf("%d", &n);printf("The result is \n%d\n", sum(n));return 0;
} 

总结:递归函数解决问题哦。找到递归终止条件,递归函数。
【10-7】用递归方法编写一个程序,返回整型数组array中的最大值。数组array中的元素互不相等。

//10-7 2023年12月30日19点37分-19点51分 
# include <stdio.h>
int max(int a[], int n)  //递归方法哦!
{if (n == 1)return a[0];else //return a[n-1] >= max(a, n-1) ? a[n-1] : max(a, n-1);  //目前正确 return a[0] >= max(a+1, n-1) ? a[0] : max(a+1, n-1);
//        return a[0] >= max(a, n-1) ? a[0] : max(a, n-1);  //错误 
//        return max(a, n-1);  //错误 
}
int main()
{int n;printf("Please input a integer:\n");scanf("%d", &n);int arr[n];printf("Please %d numbers:\n", n);for (int i = 0; i < n; i++) {scanf("%d", &arr[i]);}printf("The maxValue is\n%d\n", max(arr, n));return 0;
} 

【10-8】用递归方法解决输出字符串。
看到这个题目时,我感觉不使用递归的话,应该很好输出。本题的输出结果其实就是这个小写字符串与它对应的大写字符串的逆序交叉输出。使用递归方法的话,终止条件应该是只包含一个小写字母,那么输出两个字母;如果是包含n个小写字母呢?
想法:n个小写字母其实就是一个小写字母循环,规律呢?

//10-7 2023年12月30日19点52分-20点16分 
# include <stdio.h>
# include <string.h>
char upper(char c)  //将小写字母转换为大写字母 
{return (c-'a'+'A');
}
//void func(char *s, int n)  //错误 
//{
//    if (n == 1) {
//        printf("%c%c", s[strlen(s)-n]-32, s[n-1]);
//    } else {
//        func(s, n-1);
//    }
//}
void func(char *str, int n, int i)  //递归法按要求格式输出字符串 
{if (i < n) {printf("%c%c", upper(str[n-i-1]), str[i]);func(str, n, i+1);}
}
int main()
{char s[200];printf("Please input a string:\n");  //输入字符串 scanf("%s", s);printf("The result is\n");func(s, strlen(s), 0);  //调用递归函数func() return 0;
} 

总结:这道题目还是有些难思考到。
【10-9】递归方法实现字符串内容就地逆置。

//10-9 2023年12月30日20点19分-20点27分 
# include <stdio.h>
# include <string.h>
void reverse(char *s, int n, int i)
{
//    if (n == 1) {  //错误 
//        printf("%c", s[n-1]);
//    } else {
//        reverse(s, n-1);
//    }if (i < n) {  //目前正确 printf("%c", s[n-1-i]);reverse(s, n, i+1);}
}
int main()
{char s[200];printf("Please input a string:\n");gets(s);printf("The result is\n");reverse(s, strlen(s), 0);return 0;
} 
//10-9 书上代码 
# include <stdio.h>
# include <string.h>
void reverser(char *s, int n, int i)
{if (i < n) {char tmp = s[n];  //字符的置换 s[n] = s[i];s[i] = tmp;reverser(s, n-1, i+1);  //递归调用函数reverser() }
}
void reverse(char *s)
{reverser(s, strlen(s)-1, 0);  //调用递归函数 
}int main()
{char s[200];printf("Please input a string:\n");gets(s);reverse(s);printf("The result is\n%s", s);return 0;
} 

总结:要与题目要求的接口一致哦!!
【10-10】编程计算可以制作出多少种水果拼盘。

//10-10 2023年12月30日20点34分-20点42分
# include <stdio.h> 
void func(int n)
{switch(n) {case 0: printf("apple "); break;case 1: printf("orange "); break;case 2: printf("banana "); break;case 3: printf("pineapple "); break;case 4: printf("pear "); break;}
}
int fruitPlate()
{int count = 0;for (int i = 0; i < 5; i++) {for (int j = 0; j < 5; j++) {if (j == i) {continue;}for (int k = 0; k < 5; k++) {if (k == j || k == i) {continue;}count++;func(i);func(j);func(k);printf("\n");}}}return count;
}
int main()
{printf("There are %d kinds of methods for arranging plate.", fruitPlate());return 0;
}

总结:穷举法。写成函数然后调用哦!
【10-11】请在屏幕上输出一张乘法口诀表。

//10-11 2023年12月30日20点43分-20点46分 
# include <stdio.h>
void func()
{for (int i = 1; i < 10; i++) {for (int j = 1; j <= i; j++) {printf("%d*%d=%2d  ", j, i, j*i);}printf("\n");}
}
int main()
{func();return 0;
} 

【10-12】编程找出一个数字。

//10-12 2023年12月30日20点47分-20点50分 
# include <stdio.h>
# include <math.h>
int is_square(int n)  //判断完全平方数函数
{int r = sqrt(n);if (r * r == n) {return 1;} else {return 0;}
}
int func(void)
{for (int i = 1; ; i++) {  //穷举法找数字if (is_square(i+100) && is_square(i+168)) {return i;}}
}
int main()
{printf("The number is %d", func());return 0;
} 

【10-13】求和。

//10-13 2023年12月30日20点53分-20点57分 
# include <stdio.h>
int sum(int num, int t)
{int s = 0, r = 0;for (int i = 1; i <= num; i++) {r = r * 10 + t;s += r;}return s;
}
int main()
{printf("Please input n and a:\n");int n, a;scanf("%d %d", &n, &a);printf("The result is\n%d", sum(n, a));return 0;
} 

【10-14】设计一个递归算法将一个整数n转换成字符串。

//10-14 2023年12月30日20点58分-
# include <stdio.h>
# include <malloc.h>
/*char *func(int num)  //非递归做法 
{int tmp = num, k = 0;if (tmp == 0) {k = 1;}while (tmp) {k++;tmp /= 10;}char *ret = (char *)malloc(sizeof(char)*(k+1));
//    char ret[100];ret[k] = '\0';if (num == 0) {ret[0] = '0';}while (num) {ret[k-1] = num % 10 + '0';num /= 10;--k;}return ret;
}*/
//书上代码
void trans(int n)
{int i = n % 10;  //得到整数n的个位数字if (n/10 > 0)trans(n/10);  //递归调用trans,将高位数转换为字符串printf("%c", i + '0'); 
} 
int main()
{int n;printf("Please input a integer:\n");scanf("%d", &n);
//    printf("The result is\n%s", func(n));printf("The result is\n");trans(n);return 0;
} 

总结:用递归方法还是不熟练,写不出来。
【10-16】编程实现字符串复制。

//10-16 2023年12月30日21点11分-21点16分 
# include <stdio.h>
void mystrcpy(char *str, char *ret)
{/*int i;for (i = 0; str[i]; i++) {  //逐个字符复制 ret[i] = str[i];}ret[i] = '\0';*/int i = 0;while (str[i]) {*(ret+i) = *(str+i);  //复制字符串 i++;  //指针后移 }ret[i] = '\0';  //目的字符串的末尾要添加字符串结束标志'\0' 
}
int main()
{char s[200], t[200];printf("Please input a string:\n");//scanf("%s", s);gets(s);mystrcpy(s, t);printf("The result is\n%s", t);return 0;
} 

【10-17】编写一个函数loopMove(char *str, int n)实现字符串的循环右移功能。
自己有点想不出来诶!
书上分析,每次取字符串尾部一个字符保存到临时变量,然后将字符串前面的所有字符右移一位,然后将临时变量中存放的字符复制到字符串的首部,如此循环n次。

//10-17 2023年12月30日21点19分-21点27分 
# include <stdio.h>
# include <string.h>
void loopMove(char *str, int n)
{int strLength = strlen(str);for (int i = 0; i < n; i++) {char tmp = str[strLength - 1];  //取出字符串的最后一个元素 for (int j = 0; j < strLength - 1; j++) {str[strLength-j-1] = str[strLength-j-2];  //前面的元素后移 }str[0] = tmp;  //将原字符串尾部的元素放在字符串首部 }
}
int main()
{char s[200];printf("Please input a string:\n");gets(s); int n;printf("Please input a integer:\n");scanf("%d", & n);loopMove(s, n);printf("The result is\n%s", s);return 0;
} 

【10-18】找出01字符串中0和1连续出现的最大次数。

//10-18 2023年12月30日21点36分- 21点52分
# include <stdio.h>
void getMax(char *str, int *max0, int *max1)
{int cnt_0 = 0, cnt_1 = 0;if (str[0] == '0') {cnt_0++;} else {cnt_1++;}for (int i = 1; str[i]; i++) {if (str[i] == str[i-1]) {if (str[i] == '0') {cnt_0++;} else {cnt_1++;}} else {if (str[i] == '0') {if (cnt_1 > *max1) {*max1 = cnt_1;cnt_1 = 0;}cnt_0++;} else {if (cnt_0 > *max0) {*max0 = cnt_0;cnt_0 = 0;}cnt_1++;}}}if (cnt_1 > *max1) {*max1 = cnt_1;}if (cnt_0 > *max0) {*max0 = cnt_0;}
}
int main()
{char s[200];printf("Please input a string:\n");scanf("%s", s);int max0 = 0, max1 = 0;getMax(s, &max0, &max1);printf("max0 = %d, max1 = %d", max0, max1);return 0;
}

总结:函数中返回两个变量的值,用指针传递。
【10-19】编程计算该数列第20项的值。

//10-19 2023年12月30日21点55分-22点00分 
# include <stdio.h>
/*int func(int num)
{int tmp = 1;for (int i = 2; i <= num; i++) {if (i % 2 == 0) {tmp = tmp * 2 + 1;} else {tmp *= 2;}}return tmp;
}*/
//书上代码
unsigned long func(int num)
{if (num == 1)return 1;if (num % 2 == 0)return 2*func(num-1)+1;elsereturn 2*func(num-1);
} 
int main()
{printf("Please input n:\n");int n;scanf("%d", &n);
//    printf("The result is\n%d", func(n));printf("The result is\n%ld", func(n));return 0;
} 

总结:递归函数。还有注意数据的范围。
【10-20】计算这位集邮爱好者集邮总数是多少?以及每册中各有多少邮票?

//10-20 2023年12月30日22点04分-22点07分 
# include <stdio.h>
int main()
{int x;for (int y = 1; y < 7; y++) {if (303*7*10 % (56-10*y) == 0) {x = 303*7*10 / (56-10*y);break;}}printf("x = %d, A = %d, B = %d, C = 303", x, x/5, x-x/5-303);return 0;
} 

【10-21】编写递归算法,计算出每个人的年龄。

//10-21 2023年12月30日22点09分-22点14分 
# include <stdio.h>
int func(int num)
{if (num == 1) {  //第一个人10岁 return 10;} else {return 2+func(num-1);  //第n个人的年龄比第n-1人的年龄大2岁 }
}
int main()
{for (int i = 1; i <= 5; i++) {printf("Age %d: %d\n", i, func(i));} return 0;
} 

【10-22】

相关文章:

《妙趣横生的算法》(C语言实现)-第10章算法设计与数据结构面试题精粹

【10-1】输入一个字符串并将它输出&#xff0c;以ctrlz组合键表示输入完毕&#xff0c;要求将输入的字符串中多于1个的连续空格符合并为1个。 //10-1 2023年12月30日17点11分-17点18分 # include <stdio.h> int main() {char c;c getchar();//scanf("%c", &a…...

(JAVA)-(网络编程)-初始网络编程

网络编程就是在通信协议下&#xff0c;不同的计算机上运行的程序&#xff0c;进行的数据传输。 讲的通俗一点&#xff0c;就是以前我们写的代码是单机版的&#xff0c;网络编程就是联机版的。 应用场景&#xff1a;即时通信&#xff0c;网游对战&#xff0c;金融证券&#xf…...

Observer观察者模式(组件协作)

观察者模式&#xff08;组件协作&#xff09; 链接&#xff1a;观察者模式实例代码 解析 目的 在软件构建过程中&#xff0c;我们需要为某些对象建立一种“通知依赖关系” ——一个对象&#xff08;目标对象&#xff09;的状态发生改变&#xff0c;所有的依赖对象&#xff0…...

数据挖掘 聚类度量

格式化之前的代码&#xff1a; import numpy as np#计算 import pandas as pd#处理结构化表格 import matplotlib.pyplot as plt#绘制图表和可视化数据的函数&#xff0c;通常与numpy和pandas一起使用。 from sklearn import metrics#聚类算法的评估指标。 from sklearn.clust…...

[Angular] 笔记 24:ngContainer vs. ngTemplate vs. ngContent

请说明 Angular 中 ngContainer&#xff0c; ngTemplate 和 ngContent 这三者之间的区别。 chatgpt 回答&#xff1a; 这三个在 Angular 中的概念是关于处理和组织视图的。 1. ngContainer&#xff1a; ngContainer 是一个虚拟的 HTML 容器&#xff0c;它本身不会在最终渲染…...

❀My排序算法学习之插入排序❀

目录 插入排序(Insertion Sort):) 一、定义 二、基本思想 三、示例 时间复杂度 空间复杂度 bash C++ 四、稳定性分析...

【算法题】30. 串联所有单词的子串

题目 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如&#xff0c;如果 words ["ab","cd","ef"]&#xff0c; 那么 "…...

SAP-FI模块 处理自动生成会计凭证增强

ENHANCEMENT 2 ZEHENC_SAPMF05A. "active version * FI 20221215&#xff1a;固定资产业务过渡科目摘要增强功能 WAIT UP TO 1 SECONDS.READ TABLE xbseg WITH KEY hkont 1601990001. IF sy-subrc 0.DATA: lt_bkdf TYPE TABLE OF bkdf,lt_bkpf TYPE TABLE OF bkpf,…...

Shell脚本-bin/bash: 解释器错误: 没有那个文件或目录-完整路径执行-“/”引发的脑裂

引起该不适的一种可能以及解决方案&#xff0c;网上较多&#xff0c;比如&#xff1a; 但按以上方式操作&#xff0c;并经过查看&#xff0c;发现仍然未能解决问题。 因为两种方式执行&#xff0c;有一种能成功&#xff0c;有一种不能&#xff0c;刚开始未怀疑是文件问题&…...

React MUI(版本v5.15.2)详细使用

使用React MUI&#xff08;版本v5.15.2&#xff09;的详细示例。请注意&#xff0c;由于版本可能会有所不同&#xff0c;因此建议您查阅官方文档以获取最新的信息和示例。但是&#xff0c;我将根据我的知识库为您提供一些基本示例。 首先&#xff0c;确保您已经按照之前的说明…...

用CSS中的动画效果做一个转动的表

<!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><title></title><style>*{margin:0;padding:0;} /*制作表的样式*/.clock{width: 500px;height: 500px;margin:0 auto;margin-top:100px;border-rad…...

【linux】Linux管道的原理与使用场景

Linux管道是Linux命令行界面中一种强大的工具&#xff0c;它允许用户将多个命令链接起来&#xff0c;使得一个命令的输出可以作为另一个命令的输入。这种机制使得我们可以创建复杂的命令链&#xff0c;并在处理数据时提供了极大的灵活性。在本文中&#xff0c;我们将详细介绍Li…...

nvidia jetson xavier nx developer kit version emmc版重装系统

一、将开发板上的外置硬盘取下来格式化 二、在双系统ubuntu安装SDK Manager&#xff08;.deb文件&#xff09; SDK Manager | NVIDIA Developer sudo apt install ./sdkmanager_1.9.2-10884_amd64.deb 报错直接百度错误&#xff0c;执行相应命令即可 三、 运行SDK Manager …...

命令模式-实例使用

未使用命令模式的UML 使用命令模式后的UML public abstract class Command {public abstract void execute(); }public class Invoker {private Command command;/*** 为功能键注入命令* param command*/public void setCommand(Command command) {this.command command;}/***…...

将网页变身移动应用:网址封装成App的完全指南

什么是网址封装&#xff1f; 网址封装是一个将你的网站或网页直接嵌入到一个原生应用容器中的过程。用户可以通过下载你的App来访问网站&#xff0c;而无需通过浏览器。这种方式不仅提升了用户体验&#xff0c;还可利用移动设备的功能&#xff0c;如推送通知和硬件集成。 小猪…...

探讨kernel32.dll文件是什么,有效解决kernel32.dll丢失

在使用电脑时&#xff0c;你是否遇到过kernel32.dll丢失的困扰&#xff1f;面对这个问题&#xff0c;我们需要及时去解决kernel32.dll丢失的问题。接下来&#xff0c;我们将深入探讨kernel32.dll的功能以及其在操作系统和应用程序中的具体应用领域&#xff0c;相信这将对你解决…...

LOAM: Lidar Odometry and Mapping in Real-time 论文阅读

论文链接 LOAM: Lidar Odometry and Mapping in Real-time 0. Abstract 提出了一种使用二维激光雷达在6自由度运动中的距离测量进行即时测距和建图的方法 距离测量是在不同的时间接收到的&#xff0c;并且运动估计中的误差可能导致生成的点云的错误配准 本文的方法在不需要高…...

如何使用Docker将.Net6项目部署到Linux服务器(三)

目录 四 安装nginx 4.1 官网下载nginx 4.2 下载解压安装nginx 4.3 进行configure 4.4 执行make 4.5 查看nginx是否安装成功 4.6 nginx的一些常用命令 4.6.1 启动nginx 4.6.2 通过命令查看nginx是否启动成功 4.6.3 关闭Nginx 4.6.5 重启Nginx 4.6.6 杀掉所有Nginx进程 4.…...

《Spring Cloud学习笔记:分布式事务Seata》

解决分布式事务的方案有很多&#xff0c;但实现起来都比较复杂&#xff0c;因此我们一般会使用开源的框架来解决分布式事务问题。 在众多的开源分布式事务框架中&#xff0c;功能最完善、使用最多的就是阿里巴巴在2019年开源的Seata了。 1. 初识Seata Seata是 2019 年 1 月…...

MySQL:权限控制

要授予用户帐户权限&#xff0c;可以用GRANT命令。有撤销用户的权限&#xff0c;可以用REVOKE命令。这里以 MySQl 为例&#xff0c;介绍权限控制实际应用。 GRANT授予权限语法&#xff1a; GRANT privilege,[privilege],.. ON privilege_level TO user [IDENTIFIED BY passwo…...

安全生产知识竞赛活动方案

为进一步普及安全生产法律法规知识&#xff0c;增强安全意识&#xff0c;提高安全技能&#xff0c;经研究&#xff0c;决定举办以“加强安全法治、保障安全生产”为主题的新修订《安全生产法》知识竞赛活动&#xff0c;现将有关事项通知如下&#xff1a; 一、活动时间&#xf…...

2023 IoTDB Summit:天谋科技 CTO 乔嘉林《IoTDB 企业版 V1.3: 时序数据管理一站式解决方案》...

12 月 3 日&#xff0c;2023 IoTDB 用户大会在北京成功举行&#xff0c;收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题&#xff0c;多位学术泰斗、企业代表、开发者&#xff0c;深度分享了工业物联网时序数据库 IoTDB 的技术创新…...

LangChain.js 实战系列:如何统计大模型使用的 token 使用量和花费

&#x1f4dd; LangChain.js 是一个快速开发大模型应用的框架&#xff0c;它提供了一系列强大的功能和工具&#xff0c;使得开发者能够更加高效地构建复杂的应用程序。LangChain.js 实战系列文章将介绍在实际项目中使用 LangChain.js 时的一些方法和技巧。 统计调用大模型的 to…...

基于多反应堆的高并发服务器【C/C++/Reactor】(中)EventLoop初始化

这个Dispatcher是一个事件分发模型&#xff0c;通过这个模型,就能够检测对应的文件描述符的事件的时候,可以使用epoll/poll/select,前面说过三选一。另外不管是哪一个底层的检测模型,它们都需要使用一个数据块,这个数据块就叫做DispatcherData。除此之外,还有另外一个部分,因为…...

OpenCV(Python)基础—9小时入门版

OpenCV(Python)基础—9小时入门版 # # Author : Mikigo # Time : 2021/12/1 # 一、一句话简介 OpenCV (Open Source Computer Vision Library) 是用 C 语言编写&#xff0c;提供 Python、Java 等语言 API的一个开源计算机视觉库。 二、安装 1、Debian 系使用 apt 安装 O…...

SpringBoot整合Canal

一 linux docker compose版本 1.第一步&#xff1a;基础环境 &#xff08;1&#xff09;第1步&#xff1a;安装jak、maven、git、nodejs、npm yum install maven mvn -v 安装maven时会帮安装jdkyum install git git --version 2.27.0yum in…...

用 Python 提取某一个公众号下的所有文章

当我们想要提取某一个公众号下的所有文章时&#xff0c;我们可以借助微信公众平台的开放接口&#xff0c;通过Python编写一个爬虫程序来实现。下面是一个示例代码&#xff0c;以及如何将其转化为一篇详细的微信公众号推文文章。 1. 导入所需库 首先&#xff0c;我们需要导入所…...

鸿蒙4.0实战教学—基础ArkTS(简易视频播放器)

构建主界面 主界面由视频轮播模块和多个视频列表模块组成&#xff0c;效果图如图&#xff1a; VideoData.ets中定义的视频轮播图数组SWIPER_VIDEOS和视频列表图片数组HORIZONTAL_VIDEOS。 // VideoData.ets import { HorizontalVideoItem } from ./HorizontalVideoItem; impo…...

4. 深入 Python 流程控制

​​​​​​ 4. 深入 Python 流程控制 除了前面介绍的 while 语句&#xff0c;Python 还从其它语言借鉴了一些流程控制功能&#xff0c;并有所改变。 4.1. if 语句 也许最有名的是 if 语句。例如: >>> x int(raw_input("Please enter an integer: "))…...

2000-2022年上市公司股票流动性指标数据/股票流动性Amihud(原始数据+计算代码+计算结果)

2000-2022年上市公司股票流动性指标数据/股票流动性Amihud&#xff08;原始数据计算代码计算结果&#xff09; 1、时间&#xff1a;2000-2022年 3、指标&#xff1a;证券代码_没有单位、交易日期_没有单位、日个股交易金额_元、考虑现金红利再投资的日个股回报率_没有单位、交…...

Unity 数据存储PlayerPrefs管理类

Unity 数据存储PlayerPrefs管理类 Unity 数据存储PlayerPrefs管理类实现存取实体类对象存储格式为Json格式Singleton.csInventoryEntity.csDataManager.cs用法如下 Unity 数据存储PlayerPrefs管理类 实现存取实体类对象 存储格式为Json格式 源码如下&#xff1a; Singleton…...

一篇文章学会如何使用 NestJS 过滤器处理系统全局异常情况

前言 在实际的应用开发中&#xff0c;你或许遇到过异常处理机制不统一或错误信息展示混乱的现象。为了解决这些问题&#xff0c;NestJS提供了一个优雅的解决方案&#xff1a;过滤器&#xff08;Filter&#xff09;。本文将从实际出发&#xff0c;向你介绍NestJS过滤器的基本概…...

ubuntu 守护进程 supervisor

# 安装 apt-get install supervisor# 检查 echo_supervisord_conf# 查看配置文件所在位置 # [include] # files /etc/supervisor/conf.d/*.conf ps -ef | grep supervisorcd /etc/supervisor/conf.d/lscat frp.conf[program:frp] command /data/work/frp/frpc -c /data/work/…...

SparkStreaming_window_sparksql_reids

1.5 window 滚动窗口滑动窗口 window操作就是窗口函数。Spark Streaming提供了滑动窗口操作的支持&#xff0c;从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据&#xff0c;会被聚合起来执行计算操作&#xff0c;然后生成的RDD&#xff0c;会…...

爬虫工作量由小到大的思维转变---<第二十四章 Scrapy的`统计数据`收集stats collection ---12月26日补>

前言: 前两篇是讲的数据诊断分析,还有一篇深挖解决内存泄漏的文章,目前我还没整理汇编出来;但是,想到分析问题的时候,忽然觉得爬虫的数据统计好像也挺重要;于是,心血来潮准备来插一篇这个------让大家对日常scrapy爬的数据,做到心里有数!不必自己去搅破脑汁捣腾日志,敲计算器了…...

Kafka:本地设置

这是设置 Kafka 将数据从 Elasticsearch 发布到 Kafka 主题的三部分系列的第一部分;该主题将被 Neo4j 使用。第一部分帮助您在本地设置 Kafka。第二部分将讨论如何设置Elasticsearch将数据发布到Kafka主题。最后 将详细介绍如何使用连接器订阅主题并使用数据。 Kafka Kafka 是…...

.NetCore NPOI 读取excel内容及单元格内图片

由于数据方提供的数据在excel文件中不止有文字内容还包含图片信息&#xff0c;于是编写相关测试代码&#xff0c;读取excel文件内容及图片信息. 本文使用的是 NPOI-2.6.2 版本&#xff0c;此版本持.Net4.7.2;.NetStandard2.0;.NetStandard2.1;.Net6.0。 测试文档内容&#xf…...

TCP/UDP协议

1. 请解释TCP和UDP的主要区别。 TCP和UDP都是位于传输层的协议&#xff0c;具有不同的特点和应用场景。以下是它们的主要区别&#xff1a; 连接方式&#xff1a;TCP是面向连接的协议&#xff0c;这意味着在数据传输之前需要先建立连接。这通常通过三次握手来建立连接&#xff…...

3D 渲染如何帮助电商促进销售?

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 3D 渲染图像因其高转化率而成为亚马逊卖家的最新趋势。它是电子商务平…...

使用栈求表达式的值【数据结构】

中缀表达式转后缀表达式 转换流程&#xff1a; 初始化一个运算符栈。自左向右扫描中缀表达式&#xff0c;当扫描到操作数时直接连接到后缀表达式上。当扫描到操作符时&#xff0c;和运算符栈栈顶的操作符进行比较。如果比栈顶运算符高&#xff0c;则入栈。如果比栈顶运算符低…...

{MySQL}索引事务和JDBC

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、索引1.1索引是什么1.2作用1.3代码 二、事务2.1什么是事务2.2使用 三.JDBC总结 前言 接着上次&#xff0c;继续讲下MySQL 提示&#xff1a;以下是本篇文章正…...

Qt designer界面和所有组件功能的详细介绍(全!!!)

PyQt5和Qt designer的详细安装教程&#xff1a;https://blog.csdn.net/qq_43811536/article/details/135185233?spm1001.2014.3001.5501 目录 1. 界面介绍2. Widget Box 常用组件2.1 Layouts&#xff08;布局&#xff09;2.2 Spacers&#xff08;间隔器&#xff09;2.3 Item V…...

mysql_存储过程

举例子 createdefiner root% procedure insert_batch_test(IN START int(10), IN max_num int(10)) BEGINDECLAREi INT DEFAULT 0;SET autocommit 0;REPEATSET i i 1;INSERT INTO test (std, score)VALUES (CEILING(RAND() * 10 100), CEILING(RAND() * 50 50));UNTIL i …...

uboot学习及内核更换_incomplete

官方文档 在前面 文章目录 uboot常见命令学习环境变量网络控制台uboot标准启动其他 升级uboot或内核bin和uimg以及booti和bootm的区别制作uImage更换内核更换uboot后续计划 uboot常见命令学习 环境变量 Environment Variables环境变量 autostart 如果值为yes&#xff0c;则会…...

KVM 自动化脚本的使用及热/冷迁移

一、介绍 目录结构介绍 [rootkvm-server kvm]# tree -L 2 . ├── control # 控制脚本目录 │ ├── KVMInstall.sh # kvm服务安装脚本 │ ├── VMHost.sh # kvm虚拟机克隆脚本 │ └── VMTemplate.sh # kvm模板机安装脚本 ├── mount # 此目录保持为空&…...

Unity中Shader裁剪空间推导(在Shader中使用)

文章目录 前言一、在Shader中使用转化矩阵1、在顶点着色器中定义转化矩阵2、用 UNITY_NEAR_CLIP_VALUE 区分平台矩阵3、定义一个枚举用于区分当前是处于什么相机 二、我们在DirectX平台下&#xff0c;看看效果1、正交相机下2、透视相机下3、最终代码 前言 在上一篇文章中&…...

ES的使用(Elasticsearch)

ES的使用&#xff08;Elasticsearch&#xff09; es是什么&#xff1f; es是非关系型数据库&#xff0c;是分布式文档数据库&#xff0c;本质上是一个JSON 文本 为什么要用es? 搜索速度快&#xff0c;近乎是实时的存储、检索数据 怎么使用es? 1.下载es的包&#xff08;环境要…...

车牌识别技术,如何用python识别车牌号

目录 一.前言 二.运行环境 三.代码 四.识别效果 五.参考 一.前言 车牌识别技术&#xff08;License Plate Recognition, LPR&#xff09;在交通计算机视觉&#xff08;Computer Vision, CV&#xff09;领域具有非常重要的研究意义。以下是该技术的一些扩展说明&#xff1…...

爬虫工作量由小到大的思维转变---<第二十五章 Scrapy开始很快,越来越慢(追溯篇)>

爬虫工作量由小到大的思维转变---&#xff1c;第二十二章 Scrapy开始很快,越来越慢(诊断篇)&#xff1e;-CSDN博客 爬虫工作量由小到大的思维转变---&#xff1c;第二十三章 Scrapy开始很快,越来越慢(医病篇)&#xff1e;-CSDN博客 前言: 之前提到过,很多scrapy写出来之后,不…...

Servlet入门

目录 1.Servlet介绍 1.1什么是Servlet 1.2Servlet的使用方法 1.3Servlet接口的继承结构 2.Servlet快速入门 2.1创建javaweb项目 2.1.1创建maven工程 2.1.2添加webapp目录 2.2添加依赖 2.3创建servlet实例 2.4配置servlet 2.5设置打包方式 2.6部署web项目 3.servl…...