牛客网刷题 | BC126 小乐乐查找数字
😁博客主页😁:🚀从0至1-CSDN博客🚀
🤑博客内容🤑:🍭C语言、C++、数据结构、嵌入式、Linux🍭
😎本文内容🤣:🍭BC126 小乐乐查找数字🍭
😎金句分享😎:🍭NO🍭
目录
目录
描述
输入描述:
输出描述:
示例
解题思路
理解输入和输出
设计算法
代码
更多代码
课后拓展
拓展1: 支持更大的数组
解题思路
拓展2: 统计多个目标数字
解题思路
实现代码
拓展3: 处理负数
解题思路
实现代码
拓展4: 使用哈希表
解题思路
实现代码
拓展5: 图形化展示
解题思路
实现代码
描述
给定n个整数和一个整数x,小乐乐想从n个整数中判断x出现几次,请编程帮他实现。
输入描述:
共3行
第一行,一个整数,表示n(1 <= n <= 100)。
第二行,共输入n个整数,两个整数之间用空格分隔。
第三行,输入一个整数,表示要查找的整数x。
输出描述:
一行,表示整数x出现的次数。
示例
解题思路
理解输入和输出
- 输入:
- 数组长度
a
。 - 数组元素(共
a
个)。 - 目标数字
b
。
- 数组长度
- 输出:
- 目标数字
b
在数组中出现的次数。
- 目标数字
设计算法
- 读取数组长度:
- 使用
scanf
函数读取用户输入的数组长度a
。
- 使用
- 读取数组元素:
- 使用一个
for
循环从用户那里读取a
个整数,并将它们存储在数组arr
中。
- 使用一个
- 读取目标数字:
- 使用
scanf
函数读取用户输入的目标数字b
。
- 使用
- 统计目标数字出现的次数:
- 初始化计数器
count
为0
。 - 使用另一个
for
循环遍历数组arr
,如果当前元素等于目标数字b
,则增加count
的值。
- 初始化计数器
- 输出结果:
- 使用
printf
函数输出目标数字b
在数组中出现的次数。
- 使用
代码
#include <stdio.h>int main()
{int a;int b = 0;int i;int count = 0; // 初始化 count 为 0int arr[100] = {0};scanf("%d", &a); // 输入数组长度for(i = 0; i < a; i++){scanf("%d", &arr[i]); // 输入数组元素}scanf("%d", &b); // 输入要查找的目标数字for(i = 0; i < a; i++){if(arr[i] == b){count++; // 统计目标数字出现的次数}}printf("%d\n", count); // 输出目标数字出现的次数return 0;
}/*-----------------------------------------------------------------*//*以下是加注释后的*/#include <stdio.h>int main()
{int a; // 声明变量 a 用于存储数组长度int b = 0; // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i; // 声明变量 i 作为循环控制变量int count = 0; // 声明变量 count 用于统计目标数字出现的次数,初始值为 0int arr[100] = {0}; // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素scanf("%d", &a); // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &b); // 输入要查找的目标数字并存储在变量 b 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == b) // 如果当前元素等于目标数字 b{count++; // 增加 count 的值,统计目标数字出现的次数}}printf("%d\n", count); // 输出目标数字在数组中出现的次数return 0; // 返回 0 表示程序成功结束
}
-
变量声明:
int a; int b = 0; int i; int count = 0; // 初始化 count 为 0 int arr[100] = {0};
a
: 存储数组的长度。b
: 存储要查找的目标数字。i
: 循环控制变量。count
: 用于统计目标数字出现的次数,初始值为0
。arr[100]
: 存储输入的数组元素,最大支持100个元素。
-
读取数组长度:
scanf("%d", &a);
- 用户输入数组的长度并存储在变量
a
中。
- 用户输入数组的长度并存储在变量
-
读取数组元素:
for(i = 0; i < a; i++) {scanf("%d", &arr[i]); }
- 使用
for
循环读取用户输入的数组元素,并存储在数组arr
中。
- 使用
-
读取目标数字:
scanf("%d", &b);
- 用户输入要查找的目标数字并存储在变量
b
中。
- 用户输入要查找的目标数字并存储在变量
-
统计目标数字出现的次数:
for(i = 0; i < a; i++) {if(arr[i] == b){count++;} }
- 使用
for
循环遍历数组,如果当前元素等于目标数字b
,则增加count
的值。
- 使用
-
输出结果:
printf("%d\n", count);
- 输出目标数字在数组中出现的次数。
更多代码
#include<stdio.h>
int main(){//桶排int arr[100]={0};//100个桶初始化为0int n=0;int temp=0;//桶的编号scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&temp);//获得桶编号arr[temp]++;//temp对应数的桶里,出现就自增,即为出现次数}int index=0;scanf("%d",&index);printf("%d",arr[index]);return 0;
}
#include <stdio.h>int main()
{int n = 0; // 存储数组长度int input = 0; // 存储当前输入的数组元素int x = 0; // 存储要查找的目标数字int count[1000] = {0}; // 用于统计每个数字出现的次数,最多支持1000个不同的数字scanf("%d", &n); // 输入数组长度// 使用 while 循环读取数组元素,并统计每个数字出现的次数while (n--) {scanf("%d", &input); // 读取当前数组元素count[input]++; // 增加对应数字的计数}scanf("%d", &x); // 输入要查找的目标数字printf("%d\n", count[x]); // 输出目标数字在数组中出现的次数return 0;
}
-
变量声明:
int n = 0; // 存储数组长度 int input = 0; // 存储当前输入的数组元素 int x = 0; // 存储要查找的目标数字 int count[1000] = {0}; // 用于统计每个数字出现的次数,最多支持1000个不同的数字
-
读取数组长度:
scanf("%d", &n); // 输入数组长度
-
读取数组元素并统计次数:
while (n--) {scanf("%d", &input); // 读取当前数组元素count[input]++; // 增加对应数字的计数 }
- 使用
while
循环读取数组元素,并将每个数字的出现次数存储在count
数组中。
- 使用
-
读取目标数字:
scanf("%d", &x); // 输入要查找的目标数字
-
输出结果:
printf("%d\n", count[x]); // 输出目标数字在数组中出现的次数
- 输出目标数字
x
在数组中出现的次数。
- 输出目标数字
课后拓展
拓展1: 支持更大的数组
当前代码支持的最大数组长度为100。如果我们需要处理更大的数组,可以通过动态内存分配来实现。
解题思路
-
动态内存分配:
- 使用
malloc
函数动态分配内存以存储数组元素。 - 检查内存分配是否成功,如果失败则输出错误信息并退出程序。
- 使用
-
读取数组元素:
- 使用
for
循环从用户那里读取数组元素,并存储在动态分配的数组中。
- 使用
-
统计目标数字出现的次数:
- 初始化计数器
count
为0
。 - 使用
for
循环遍历数组,如果当前元素等于目标数字b
,则增加count
的值。
- 初始化计数器
-
输出结果:
- 使用
printf
函数输出目标数字b
在数组中出现的次数。
- 使用
-
释放内存:
- 使用
free
函数释放动态分配的内存,避免内存泄漏。
- 使用
#include <stdio.h>
#include <stdlib.h>int main()
{int a; // 声明变量 a 用于存储数组长度int b = 0; // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i;int count = 0; // 声明变量 count 用于统计目标数字出现的次数,初始值为 0int *arr; // 声明指针 arr 用于动态分配数组scanf("%d", &a); // 输入数组长度并存储在变量 a 中// 动态分配内存arr = (int *)malloc(a * sizeof(int));if (arr == NULL) {printf("Memory allocation failed\n"); // 内存分配失败时输出错误信息return 1; // 返回 1 表示程序异常结束}for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &b); // 输入要查找的目标数字并存储在变量 b 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == b) // 如果当前元素等于目标数字 b{count++; // 增加 count 的值,统计目标数字出现的次数}}printf("%d\n", count); // 输出目标数字在数组中出现的次数// 释放动态分配的内存free(arr);return 0; // 返回 0 表示程序成功结束
}
拓展2: 统计多个目标数字
如果需要统计多个目标数字的出现次数,可以使用一个循环来多次读取目标数字并输出结果。
解题思路
-
读取数组长度和数组元素:
- 使用
scanf
函数读取数组长度a
。 - 使用
for
循环从用户那里读取数组元素,并存储在数组arr
中。
- 使用
-
读取目标数字的数量:
- 使用
scanf
函数读取要查找的目标数字的数量num_targets
。
- 使用
-
统计每个目标数字的出现次数:
- 使用嵌套的
for
循环:- 外层循环遍历每个目标数字。
- 内层循环遍历数组,统计目标数字出现的次数。
- 使用
count
数组来存储每个目标数字的出现次数。
- 使用嵌套的
-
输出结果:
- 对于每个目标数字,输出其在数组中出现的次数。
实现代码
#include <stdio.h>int main()
{int a; // 声明变量 a 用于存储数组长度int num_targets; // 声明变量 num_targets 用于存储要查找的目标数字的数量int i, j;int count[1000] = {0}; // 声明数组 count 用于统计每个数字出现的次数,最多支持1000个不同的数字int arr[100]; // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素int targets[100]; // 声明数组 targets 用于存储要查找的目标数字scanf("%d", &a); // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &num_targets); // 输入要查找的目标数字的数量for(j = 0; j < num_targets; j++) // 使用 for 循环读取每个目标数字{scanf("%d", &targets[j]); // 输入当前目标数字并存储在 targets[j] 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == targets[j]) // 如果当前元素等于目标数字 targets[j]{count[targets[j]]++; // 增加对应目标数字的计数}}printf("%d\n", count[targets[j]]); // 输出目标数字在数组中出现的次数}return 0; // 返回 0 表示程序成功结束
}
拓展3: 处理负数
当前代码假设数组中的所有元素都是非负整数。如果需要处理负数,可以调整数组 count
的大小和索引方式。
解题思路
-
调整数组大小:
- 使用更大的数组
count
来支持负数。 - 定义一个偏移量
OFFSET
,使得负数也能映射到数组的有效索引范围内。
- 使用更大的数组
-
读取数组长度和数组元素:
- 使用
scanf
函数读取数组长度a
。 - 使用
for
循环从用户那里读取数组元素,并存储在数组arr
中。
- 使用
-
统计目标数字的出现次数:
- 初始化计数器
count
为0
。 - 使用
for
循环遍历数组,如果当前元素等于目标数字b
,则增加count[b + OFFSET]
的值。
- 初始化计数器
-
输出结果:
- 使用
printf
函数输出目标数字b
在数组中出现的次数。
- 使用
实现代码
#include <stdio.h>#define MAX_NUM 1000
#define OFFSET 500int main()
{int a; // 声明变量 a 用于存储数组长度int b = 0; // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i;int count[2 * MAX_NUM + 1] = {0}; // 声明数组 count 用于统计每个数字出现的次数,支持 -MAX_NUM 到 MAX_NUMint arr[100]; // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素scanf("%d", &a); // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &b); // 输入要查找的目标数字并存储在变量 b 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == b) // 如果当前元素等于目标数字 b{count[b + OFFSET]++; // 增加对应目标数字的计数}}printf("%d\n", count[b + OFFSET]); // 输出目标数字在数组中出现的次数return 0; // 返回 0 表示程序成功结束
}
拓展4: 使用哈希表
对于更大范围的数字或更高效的统计,可以使用哈希表(散列表)来存储和统计数字的出现次数。
解题思路
-
定义哈希表结构体:
- 定义一个
HashNode
结构体,包含键、值和指向下一个节点的指针。 - 定义一个大小固定的哈希表数组
hashTable
。
- 定义一个
-
哈希函数:
- 定义一个简单的哈希函数
hashFunction
,将键映射到哈希表的索引位置。
- 定义一个简单的哈希函数
-
插入和更新操作:
- 定义
insert
函数,在哈希表中插入一个新的键值对。 - 定义
increment
函数,增加指定键的值。
- 定义
-
查询操作:
- 定义
getCount
函数,获取指定键的值。
- 定义
-
释放内存:
- 定义
freeHashTable
函数,释放哈希表占用的内存。
- 定义
-
读取数组长度和数组元素:
- 使用
scanf
函数读取数组长度a
。 - 使用
for
循环从用户那里读取数组元素,并调用increment
函数更新哈希表。
- 使用
-
读取目标数字:
- 使用
scanf
函数读取要查找的目标数字b
。
- 使用
-
输出结果:
- 使用
getCount
函数获取目标数字b
在数组中出现的次数,并使用printf
函数输出结果。
- 使用
-
释放哈希表内存:
- 调用
freeHashTable
函数释放哈希表占用的内存。
- 调用
实现代码
#include <stdio.h>
#include <stdlib.h>#define HASH_SIZE 1000typedef struct HashNode {int key;int value;struct HashNode* next;
} HashNode;HashNode* hashTable[HASH_SIZE];unsigned int hashFunction(int key) {return abs(key) % HASH_SIZE; // 计算哈希值
}void insert(HashNode** table, int key) {unsigned int index = hashFunction(key);HashNode* newNode = (HashNode*)malloc(sizeof(HashNode));newNode->key = key;newNode->value = 1;newNode->next = table[index];table[index] = newNode;
}void increment(HashNode** table, int key) {unsigned int index = hashFunction(key);HashNode* current = table[index];while (current != NULL) {if (current->key == key) {current->value++;return;}current = current->next;}insert(table, key);
}int getCount(HashNode** table, int key) {unsigned int index = hashFunction(key);HashNode* current = table[index];while (current != NULL) {if (current->key == key) {return current->value;}current = current->next;}return 0;
}void freeHashTable(HashNode** table) {for (int i = 0; i < HASH_SIZE; i++) {HashNode* current = table[i];while (current != NULL) {HashNode* temp = current;current = current->next;free(temp);}}
}int main()
{int a; // 声明变量 a 用于存储数组长度int b = 0; // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i;int arr[100]; // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素scanf("%d", &a); // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中increment(hashTable, arr[i]); // 增加对应数字的计数}scanf("%d", &b); // 输入要查找的目标数字并存储在变量 b 中printf("%d\n", getCount(hashTable, b)); // 输出目标数字在数组中出现的次数freeHashTable(hashTable); // 释放哈希表占用的内存return 0; // 返回 0 表示程序成功结束
}
拓展5: 图形化展示
如果希望以图形化的方式展示结果,可以使用简单的字符图形或调用图形库(如SDL、OpenGL等)。这里我们使用简单的字符图形来展示。
解题思路
-
读取数组长度和数组元素:
- 使用
scanf
函数读取数组长度a
。 - 使用
for
循环从用户那里读取数组元素,并存储在数组arr
中。
- 使用
-
读取目标数字:
- 使用
scanf
函数读取要查找的目标数字b
。
- 使用
-
统计目标数字的出现次数:
- 初始化计数器
count
为0
。 - 使用
for
循环遍历数组,如果当前元素等于目标数字b
,则增加count
的值。
- 初始化计数器
-
输出结果:
- 使用
printf
函数输出目标数字b
在数组中出现的次数。
- 使用
-
简单字符图形展示:
- 使用
for
循环打印星号*
来表示目标数字出现的次数。
- 使用
实现代码
#include <stdio.h>int main()
{int a; // 声明变量 a 用于存储数组长度int b = 0; // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i;int count = 0; // 声明变量 count 用于统计目标数字出现的次数,初始值为 0int arr[100]; // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素scanf("%d", &a); // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &b); // 输入要查找的目标数字并存储在变量 b 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == b) // 如果当前元素等于目标数字 b{count++; // 增加 count 的值,统计目标数字出现的次数}}printf("Number of occurrences of %d: %d\n", b, count); // 输出目标数字在数组中出现的次数// 简单字符图形展示printf("Occurrences:\n");for(i = 0; i < count; i++){printf("*"); // 打印星号表示一次出现}printf("\n");return 0; // 返回 0 表示程序成功结束
}
相关文章:
牛客网刷题 | BC126 小乐乐查找数字
😁博客主页😁:🚀从0至1-CSDN博客🚀 🤑博客内容🤑:🍭C语言、C、数据结构、嵌入式、Linux🍭 😎本文内容🤣:🍭BC1…...
Node一、fs 模块、path 模块、端口号、 http 模块、
一、Node.js了解 Node.js是一个跨平台JavaScript运行环境,使开发者可以搭建服务器端的JavaScript应用程序。 概念:使用 Node.js 编写后端程序 / 支持前端工程化 ✓ 后端程序:提供接口和数据,网页资源等 ✓ 前端工程化 &#x…...
k8s service 配置AWS nlb load_balancing.cross_zone.enabled
在Kubernetes中配置NLB(Network Load Balancer)的跨区域负载均衡(cross-zone load balancing),需要使用服务注解(service annotations)来实现。根据AWS官方文档,以下是配置NLB跨区域…...
[分布式即时通讯系统] 注册类完善
我们在qss里添加err_tip样式,根据不同的状态做字体显示 #err_tip[statenormal]{color: green; } #err_tip[stateerr]{color: red; } 接下来项目中添加global.h和global.cpp文件,global.h声明repolish函数,global.cpp用来定义这个函数。 .h…...
C#使用HttpWebRequest下载文件
public static bool HttpDownloadFile(string downloadUrl, string localPath, log4net.ILog log) { bool bFlagDownloadFile false; //log.Debug(“HttpDownloadFile–准备以HTTP的方式下载文件,url:[” downloadUrl “]本地文件:【” localPath “…...
CentOS7环境安装php
直接安装 yum -y install php CentOS7默认安装是php5,现在php已有8.3版本 先查看php -v 版本 如果是低版本,可以删除 yum remove php yum remove php-fpm yum remove php-common 一、添加REMI存储库 yum install epel-release yum install -y …...
【Excel学习记录】04-排序和筛选
1.排序 (1)简单排序 不建议选中某列后进行排序 可以选中一个单元格或者整个表格→开始→编辑→排序和筛选→升序/降序 (2)多条件排序 可以选中一个单元格或者整个表格→开始→编辑→排序和筛选→自定义排序→指定关键字、比较内…...
Python轻松获取抖音视频播放量
现在在gpt的加持下写一些简单的代码还是很容易的,效率高,但是要有一点基础,不然有时候发现不了问题,这些都需要经验积累和实战,最好能和工作结合起来,不然很快一段时间就忘的干干净净了,下面就是…...
恢复删除的文件:6个免费Windows电脑数据恢复软件
数据恢复软件可帮助您从众多存储设备中恢复损坏或删除的数据。您可以使用这些文件恢复软件来检索文件、文档、视频、图片等。这些应用程序支持多种标准文件格式,如 PNG、RTF、PDF、HTML、JPG、MP3 等。 经过超过 75 小时的研究,我分析了 25 最佳免费数据…...
Go的Gin比java的Springboot更加的开箱即用?
前言 隔壁组的云计算零零后女同事,后文简称 云女士 ,非说 Go 的 Gin 框架比 Springboot 更加的开箱即用,我心想在 Java 里面 Springboot 已经打遍天下无敌手,这份底蕴岂是 Gin 能比。 但是云女士突出一个执拗,非我要…...
Java 中枚举的 toString 方法及其字段信息展示
在 Java 编程中,枚举(enum)是一种特殊的数据类型,用于定义一组固定的常量。枚举类型不仅限于简单的常量定义,还可以包含字段、方法以及构造函数,从而使其具备更强的表达能力。toString 方法是 Java 中所有对…...
Python数据分析(OpenCV视频处理)
处理视频我们引入的还是numpy 和 OpenCV 的包 引入方式如下: import numpy as np import cv2 我们使用OpenCV来加载本地视频,参数就是你视频的路径就可以 #加载视频 cap cv2.VideoCapture(./1.mp4) 下面我们进行读取视频 #读取视频 flag,frame cap.re…...
DocFlow票据AI自动化处理工具:出色的文档解析+抽取能力,提升企业文档数字化管理效能
目录 财务应付 金融信贷业务 近期,DocFlow票据自动化产品正式上线。DocFlow是一款票据AI自动化处理工具,支持不同版式单据智能分类扩展,可选功能插件配置流程,满足多样业务场景。 随着全球化与信息化进程,企业的文件…...
python编程Day15-UnitTest框架的介绍
框架 framework为了解决一类事情的功能集合 Unittest 框架 是 Python 自带的单元测试框架 自带的, 可以直接使用, 不需要单外安装 测试人员 用来做自动化测试, 作为自动化测试的执行框架, 即 管理和执行用例的 使用原因 能够组织多个用例去执行提供丰富的断言方法能够生成测试报…...
Linux——进程控制模拟shell
1.进程创建 我们在之前的文章中介绍过进程创建的方法,可以通过系统调用接口fork来创建新的进程。 fork在创建完新的子进程之后,返回值是一个pid,对于父进程返回子进程的pid,对于子进程返回0。fork函数后父子进程共享代码ÿ…...
OpenCV的图像矫正
一、原理 图像矫正的原理是透视变换,下面来介绍一下透视变换的概念。 透视变换(Perspective Transform)基于一个4对点的映射关系(4个源点到4个目标点),通过这些点之间的映射,可以计算一个变换…...
基于php求职招聘系统设计
摘要 随着社会信息化时代的到来,如今人们社会的生活节奏普遍加快,人们对于工作效率的要求也越来越高,企业 举办招聘会耗时耗财,个人参加招聘会漫无目的寻找不到“方向”,网络搜索工作量目的性不强,信息量繁…...
并行口的基本概念
单片机的并行口结构包括多个并行I/O端口,用于与外部设备进行并行数据传输。这些端口能够直接读写外部存储器、显示设备、打印机等外设的数据,是单片机与外界交互的重要通道。在深入探讨之前,我们先简要了解下单片机的基本概念。 单片机&…...
(六)机器学习 - 正态数据分布
正态数据分布,也称为高斯分布(Gaussian distribution),是一种在统计学中非常重要的概率分布。它描述了自然和社会科学中许多现象的分布情况,如人的身高、体重、智商等。正态分布的图形特征是中间高、两边低,…...
电脑系统报错找不到d3dcompiler_47.dll怎么修复?怎么预防“d3dcompiler_47.dll”文件缺失?
“d3dcompiler_47.dll”文件缺失的修复与预防策略 在日常使用电脑软件,尤其是运行大型游戏或图形密集型应用时,我们可能会遇到一些令人困惑的系统报错。其中之一便是“找不到d3dcompiler_47.dll”的错误提示。这个错误不仅影响软件的正常运行࿰…...
Github 2024-12-12 Go开源项目日报Top10
根据Github Trendings的统计,今日(2024-12-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Go Ethereum: 以太坊Go语言官方实现 创建周期:3717 天开发语言:Go协议类型:GNU Lesser General Public License v3.0Star数量:4504…...
RIP协议
介绍 路由信息协议RIP(Routing Information Protocol)是基于距离矢量(Distance-Vector)算法的路由协议,它是一种较为简单的内部网关协议IGP(Interior Gateway Protocol)。它的主要功能是帮助路…...
vue-router查漏补缺
一、动态路由匹配 1.带参数的动态路由匹配 import User from ./User.vue// 这些都会传递给 createRouter const routes [// 动态字段以冒号开始{ path: /users/:efg, component: User }, ]这种方式的路由会匹配到/users/abc或者/users/123,路径参数用冒号:表示,并…...
使用Flink CDC实现 Oracle数据库数据同步的oracle配置操作
使用Flink CDC实现 Oracle数据库数据同步的oracle配置操作,包括开启日志归档和用户授权。 flink官方参考资料: https://nightlies.apache.org/flink/flink-cdc-docs-master/zh/docs/connectors/flink-sources/oracle-cdc/ 操作步骤: 1.启用…...
mqtt.js 客户端封装
mqtt.js 客户端封装 没封装前使用 const client mqtt.connect(ws://10.10.20.9:9001) onMounted(() > {const topicList []const channelCount 12for(let i 0; i < channelCount; i) {topicList.push(/test/sendImage${i 1})}client.on(connect, () > {console…...
www.aws.training网站的账户密码如何修改
www.aws.training网站的账户密码如何修改 参加aws考试后, 账号密码如何修改呢? 是不是找了好久都找不到. 右上角, 我的账户, 点击注销. 然后会跳到页面: 点击那个网址链接, 进入新的页面,点安全: 右上角: 更改密码. 按提示来就好....
使用Python实现高性能数据存储
在数据驱动的时代,处理和存储海量数据已成为关键需求。高性能数据存储不仅能够确保数据的快速读写,还能提升系统的整体性能。Python作为一种灵活且功能强大的编程语言,提供了多种高效的数据存储解决方案。本文将详细介绍如何使用Python实现高…...
[已解决]nvm安装node.js 报错 拒绝访问此应用无法在你电脑上运行
报错如下: 出错背景: 心血来潮把node删掉重新安装,想用nvm来进行管理node 出错原因: npm下载失败、下载不完整 不完整的npm展示: 出错根本原因: 可能因为镜像源或者网络波动,导致node下载…...
图文检索(36):Decomposing Semantic Shifts for Composed Image Retrieval
Decomposing Semantic Shifts for Composed Image Retrieval 摘要方法3.1 前期准备3.2 视觉语言表示3.3 降级过程3.4 升级过程3.5 训练和推理 结论 发布时间(2024 AAAI) 标题:分解语义转换以实现组合图像检索 摘要 语义转换网络 (SSN)&…...
批量计算(Batch Processing)
批量计算(Batch Processing)是一种数据处理方式,指的是将大量任务或数据分批次进行处理,而不是实时处理每一个任务。这种处理方式通常在任务之间没有依赖关系时使用,可以大大提高计算效率和资源利用率。批量计算广泛应…...
Linux yum-config-manager命令异常
错误信息 使用 yum-config-manager命令时错误信息如下 sudo yum-config-manager \ > --add-repo \ > https://download.docker.com/linux/centos/docker-ce.repo sudo: yum-config-manager: command not found 解决办法 第一步: sudo yum -y install yum-u…...
【C++】关联存储结构容器-set(集合)详解
目录 一、基本概念 二、内部实现 三、常用操作 3.1 构造函数 3.2 插入操作 3.3 删除操作 3.4 查找操作 3.5 访问元素 3.6 容量操作 3.7 交换操作 四、特性 五、应用场景 结语 一、基本概念 set是C标准模板库(STL)中的一种关联容器…...
如何利用SPSS软件进行多组间显著性检验以abcd显示
1.SPSS软件中进行多组间的显著性检验 要在SPSS软件中进行多组间的显著性检验,并以abcd显示结果,你可以按照以下步骤操作: 数据准备: 确保你的数据已经正确输入SPSS,其中每行代表一个观测值,包含至少两列&a…...
C++ 之计时函数总结
C 之计时函数总结 总结Windows下C开发时的计时实现 1. clock() #include <time.h> //引入头文件void main() {clock_t start, end;start clock();fun(); //需计时的函数end clock(); float t_cfloat(end-start)/CLOCKS_PER_SEC;cout << "func cos…...
仿dota2渲染--shader常见贴图含义(直观展示)
Properties {[Header(Texture)]_MainTex ("RGB:颜色 A:透贴", 2D) "white"{}_NormTex ("RGB:法线贴图", 2D) "bump" {}_MaskTex ("R:高光强度 G:边缘光强度 B:高光染色 A:高光次幂…...
NoSQL大数据存储技术测试(5)MongoDB的原理和使用
单项选择题 第1题 关于 MongoDB 集群部署下面说法不正确的是() 已经不使用主从复制的模式 在实际应用场景中, Mongodb 集群结合复制集和分片机制 MongoDB 支持自动分片, 不支持手动切分 (我的答案) 每…...
视图、转发与重定向、静态资源处理
目录 视图 默认视图 视图机制原理 自定义视图 请求转发与重定向 静态资源处理 视图 每个视图解析器都实现了 Ordered 接口并开放出一个 order 属性 可以通过 order 属性指定解析器的优先顺序,order 越小优先级越高 默认是最低优先级,Integer.MAX_…...
ThinkPHP 5.1 的模板布局功能
ThinkPHP 5.1 的模板布局功能,包括全局配置、模板标签以及动态方法布局三种方式。以下是对这三种方式的要点概括和补充,以便于更好地理解和使用: 方式一:全局配置方式 适用于全站使用相同布局的情况,配置简单且统一。…...
入门网络安全工程师要学习哪些内容【2025年寒假最新学习计划】
🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 大家都知道网络安全行业很火,这个行业因为国家政策趋势正在大力发展,大有可为!但很多人对网络安全工程师还是不了解,不知道网…...
Redis Cluster 分片机制
Redis 集群是 Redis 提供的一种分布式实现,用于水平扩展数据存储能力。通过 Redis 集群,可以将数据分片存储在多个 Redis 节点上,同时提供高可用性和故障转移功能。 分片(Sharding): Redis 集群将数据划分…...
LightRAG测试BUG
错误一: LightRAG无法回答错误: INFO:lightrag:kw_prompt result:{{"high_level_keywords": ["xxx", "xxx"],"low_level_keywords": ["xxx", "xxx", "xxx"] }} JSON parsing e…...
关于手柄摇杆的连线
由于时间实在是太久远了,我也忘记具体的连线了,只能提供当时的连线图片。...
运算符优先级和,|| 的介绍
运算符优先级 关系运算的优先级高于逻辑运算,所以需要加上小括号来改变 更详细的运算符优先级可以去MATLAB官网看 &运算的优先级高于|优先级: &&,|| 的介绍 我们知道,&运算时,若第一个为 0 0 0&…...
Excel的文件导入遇到大文件时
Excel的文件导入向导如何把已导入数据排除 入起始行,选择从哪一行开始导入。 比如,前两行已经导入了,第二次导入的时候排除前两行,从第三行开始,就将导入起始行设置为3即可,且不勾选含标题行。 但遇到大文…...
SQL Having用法
拿个业务场景说这个案例,比如我们有个表里面可能有批改过的数据,批改过得数据不会随着新批改的数据覆盖,而是逐条插入表中,如果想找出包含最早批改的数据和最新批改数据的话,那么我们就需要用到了havinng 用法,假设最开…...
【mysql优化 | 新增分区】
在同步其他系统的数据,大概每天有16w多,目前已经600多万条数据了,导致查询的时候特别慢。 因为是报表,而且是每天统计,所以我们可以按照日期进行分区。 ALTER TABLE table PARTITION BY RANGE (TO_DAYS(rsdate)) (PA…...
vue 组件之间的传值方式
一、父组件向子组件传值 父组件可以使用 props 将数据传递给子组件。 <!-- 父组件 --> <template><ChildComponent :message"parentMessage" /> </template><script> import ChildComponent from ./ChildComponent.vue;export defau…...
VScode执行任务
背景 在vscode 中 如果执行命令需要传递进来参数,那么直接通过命令行终端的方式不太方便。通过task 任务的方式来进行启动执行,降低反复输入参数等繁琐工作。 首先可以查看vscode 官方文档 task 启动 crtl shift p .vscode/task.json 示例 执行cp…...
以太网链路详情
文章目录 1、交换机1、常见的概念1、冲突域2、广播域3、以太网卡1、以太网卡帧 4、mac地址1、mac地址表示2、mac地址分类3、mac地址转换为二进制 2、交换机的工作原理1、mac地址表2、交换机三种数据帧处理行为3、为什么会泛洪4、转发5、丢弃 3、mac表怎么获得4、同网段数据通信…...
将PDF流使用 canvas 绘制然后转为图片展示在页面上(二)
将PDF流转为图片展示在页面上 使用 pdfjs-dist 库来渲染 PDF 页面到 canvas 上,然后将 canvas 转为图片 安装 pdfjs-dist 依赖 npm install pdfjs-dist 或者 yarn add pdfjs-dist创建一个组件来处理 PDF 流的加载和渲染 该组件中是一个包含 PDF 文件的 ArrayBuffer…...