计算最接近的数
计算最接近的数
真题目录: 点击去查看
E B卷 100分题型
题目描述
给定一个数组X和正整数K,请找出使表达式:
X[i] - X[i + 1] - … - X[i + K - 1]
结果最接近于数组中位数的下标 i ,如果有多个 i 满足条件,请返回最大的 i.
其中,数组中位数:长度为N的数组,按照元素的值大小升序排列后,下标为 N/2 元素的值
输入描述
无
输出描述
无
备注
- 数组X的元素均为正整数
- X的长度n取值范围:2 ≤ n ≤ 1000
- K大于0目小于数组的大小
- i 的取值范围: 0 ≤ i < 1000
- 题目的排序数组X[N]的中位数是X[N/2]
用例1
输入
[50,50,2,3],2
输出
1
说明
- 中位数为50:[50,50,2,3]升序排序后变成[2,3,50,50],中位数为下标4/2=2的元素50
- 计算结果为1:X [50,50,2,3] 根据题目计算X[i] - … - X[i + k - 1] 得出三个数0 (X[0] - X[1] = 50 - 50) 、48 (X[1] - X[2] = 50 - 2) 和 -1 (X[2]-X[3] = 2 - 3) ,其中48最接近50,因此返回下标1。
题解
思路:
模拟
+滑动窗口
- 首先将原数组进行排序获取到中位数。
- 使用滑动窗口迭代获取最接近中位数的值
c++
#include <cstdint>
#include <cstdlib>
#include<iostream>
#include<vector>
#include<string>
#include <utility>
#include <sstream>
#include<algorithm>
using namespace std;// 通用 split 函数
vector<string> split(const string& str, const string& delimiter) {vector<string> result;size_t start = 0;size_t end = str.find(delimiter);while (end != string::npos) {result.push_back(str.substr(start, end - start));start = end + delimiter.length();end = str.find(delimiter, start);}// 添加最后一个部分result.push_back(str.substr(start));return result;
}int main() {string s;int k;cin >> s;// 分割字符串获取数组元素以及kvector<string> ans = split(s, "],");k = stoi(ans[1]);vector<string> numString = split(ans[0].substr(1), ",");int n = numString.size();vector<int> num(n);for (int i = 0; i < n; i++) {num[i] = stoi(numString[i]);}// 获取中位数vector<int> dp(num);sort(dp.begin(), dp.end());int midNumIndex = n / 2;int midValue = dp[midNumIndex];int res = -1;int diff = INT32_MAX;int left = n-k, right = n - 1;int sum = 0;for (int i = n - 1; i > n - k ; i--) {sum += num[i];}// 双指针迭代获取最小值while (left >= 0) {int tmp = num[left] - sum;if (abs(tmp - midValue) < diff) {diff = abs(tmp- midValue);res = left;}sum -= num[right--];sum += num[left--];}cout << res;return 0;
}
JAVA
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String line = sc.nextLine();int i = line.lastIndexOf(",");int[] x =Arrays.stream(line.substring(1, i - 1).split(",")).mapToInt(Integer::parseInt).toArray();int k = Integer.parseInt(line.substring(i + 1));System.out.println(getResult(x, k));}public static int getResult(int[] x, int k) {int n = x.length;// x数组的中位数int mid = Arrays.stream(x).sorted().toArray()[n / 2];// 初始化滑窗0~k-1, window为滑窗内部元素的表达式计算结果int window = x[0];for (int i = 1; i < k; i++) {window -= x[i];}// window和中位数的差距int minDiff = Math.abs(mid - window);// window滑窗起始索引int idx = 0;// 滑窗右移for (int i = 1; i <= n - k; i++) {// 右移一格后,新滑窗的表达式计算结果window += -x[i - 1] + 2 * x[i] - x[i + k - 1];// 新滑窗window值和中位数的差距int diff = Math.abs(mid - window);// 结果最接近于数组中位数的下标 i ,如果有多个 i 满足条件,请返回最大的 iif (diff <= minDiff) {minDiff = diff;idx = i;}}return idx;}
}
Python
# 输入获取
tmp = input()i = tmp.rfind(",")x = list(map(int, tmp[1:i-1].split(",")))
k = int(tmp[i+1:])# 实现代码
def getResult():n = len(x)# x数组的中位数mid = sorted(x)[n // 2]# 初始化滑窗0~k-1, window为滑窗内部元素的表达式计算结果window = x[0]for j in range(1, k):window -= x[j]# window和中位数的差距minDiff = abs(mid - window)# window滑窗起始索引idx = 0# 滑窗右移for i in range(1, n-k+1):# 右移一格后,新滑窗的表达式计算结果window += -x[i-1] + 2 * x[i] - x[i + k -1]# 新滑窗window值和中位数的差距diff = abs(mid - window)# 结果最接近于数组中位数的下标 i ,如果有多个 i 满足条件,请返回最大的 iif diff <= minDiff:minDiff = diffidx = ireturn idx# 算法调用
print(getResult())
JavaScript
/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});rl.on("line", (line) => {const i = line.lastIndexOf(",");const x = line.slice(1, i - 1).split(",").map(Number);const k = parseInt(line.slice(i + 1));console.log(getResult(x, k));
});function getResult(x, k) {const n = x.length;const midIdx = Math.floor(n / 2);// x数组的中位数const mid = [...x].sort((a, b) => a - b)[midIdx];// 初始化滑窗0~k-1, window为滑窗内部元素的表达式计算结果let window = x[0];for (let i = 1; i < k; i++) {window -= x[i];}// window和中位数的差距let minDiff = Math.abs(mid - window);// window滑窗起始索引let idx = 0;// 滑窗右移for (let i = 1; i <= n - k; i++) {// 右移一格后,新滑窗的表达式计算结果window += -x[i - 1] + 2 * x[i] - x[i + k - 1];// 新滑窗window值和中位数的差距const diff = Math.abs(mid - window);// 结果最接近于数组中位数的下标 i ,如果有多个 i 满足条件,请返回最大的 iif (diff <= minDiff) {minDiff = diff;idx = i;}}return idx;
}
Go
package mainimport ("fmt""math""sort""strconv""strings"
)func main() {var s stringfmt.Scanln(&s)// 分割输入字符串parts := strings.Split(s, "],")numStr := strings.Trim(parts[0], "[]")k, _ := strconv.Atoi(strings.TrimSpace(parts[1]))// 转换数字字符串为整数数组numStrs := strings.Split(numStr, ",")num := make([]int, len(numStrs))for i, ns := range numStrs {num[i], _ = strconv.Atoi(strings.TrimSpace(ns))}n := len(num)// 获取中位数sortedNum := append([]int{}, num...) // 复制一份数组以进行排序sort.Ints(sortedNum)midValue := sortedNum[n/2]res := -1diff := math.MaxInt32left, right := n-k, n-1sum := 0// 初始化 sum 为最后 k-1 个元素的总和for i := n - 1; i > n-k; i-- {sum += num[i]}// 滑动窗口,查找最接近中位数的起始位置for left >= 0 {tmp := num[left] - sumif abs(tmp-midValue) < diff {diff = abs(tmp - midValue)res = left}sum -= num[right]right--sum += num[left]left--}fmt.Println(res)
}// 计算绝对值的辅助函数
func abs(x int) int {if x < 0 {return -x}return x
}
相关文章:
计算最接近的数
计算最接近的数 真题目录: 点击去查看 E B卷 100分题型 题目描述 给定一个数组X和正整数K,请找出使表达式: X[i] - X[i 1] - … - X[i K - 1] 结果最接近于数组中位数的下标 i ,如果有多个 i 满足条件,请返回最大的 i. 其中&…...
Ubuntu离线docker compose安装DataEase 2.10.4版本笔记
1、先准备一个可以正常上网的相同版本的Ubuntu系统,可以使用虚拟机。Ubuntu系统需要安装好docker compose或docker-compose 2、下载dataease-online-installer-v2.10.4-ce.tar在线安装包,解压并执行install.sh进行安装和启动 3、导出docker镜像 sudo d…...
C#使用WMI获取控制面板中安装的所有程序列表
C#使用WMI获取控制面板中安装的所有程序列表 WMI 全称Windows Management Instrumentation,Windows Management Instrumentation是Windows中用于提供共同的界面和对象模式以便访问有关操作系统、设备、应用程序和服务的管理信息。如果此服务被终止,多数基于 Windo…...
WPF2-1在xaml为对象的属性赋值.md
1. AttributeValue方式 1.1. 简单属性赋值1.2. 对象属性赋值 2. 属性标签的方式给属性赋值3. 标签扩展 (Markup Extensions) 3.1. StaticResource3.2. Binding 3.2.1. 普通 Binding3.2.2. ElementName Binding3.2.3. RelativeSource Binding3.2.4. StaticResource Binding (带参…...
社区版Dify实现文生视频 LLM+ComfyUI+混元视频
社区版Dify实现文生视频 LLMComfyUI混元视频 一、 社区版Dify实现私有化混元视频效果二、为什么社区版Dify可以在对话框实现文生视频?LLMComfyUI混元视频 实现流程图(重点)1. 文生视频模型支持ComfyUI2. ComfyUI可以轻松导出API实现封装3. Di…...
QT调用OpenSceneGraph
OSG和osgQt编译教程,实测通过 一、下载OpenSceneGraph OpenSceneGraphhttps://github.com/openscenegraph/OpenSceneGraph 二、使用CMAKE编译OpenSceneGraph 1.打开cmake,配置源代码目录 2. CMAKE_INSTALL_PREFIX设置为install文件夹,生…...
Qt基础项目篇——Qt版Word字处理软件
一、核心功能 本软件为多文档型程序,界面是标准的 Windows 主从窗口 拥有:主菜单、工具栏、文档显示区 和 状态栏。 所要实现的东西,均在下图了。 开发该软件,主要分为下面三个阶段 1)界面设计开发 多窗口 MDI 程序…...
【Postgres_Python】使用python脚本批量创建和导入多个PG数据库
之前批量创建和导入数据库分为2个python脚本进行,现整合优化代码合并为一个python脚本,可同步实现数据库的创建和数据导入。之前的文章链接: 【Postgres_Python】使用python脚本批量创建PG数据库 【Postgres_Python】使用python脚本将多个.S…...
消息队列篇--原理篇--RabbitMQ和Kafka对比分析
RabbitMQ和Kafka是两种非常流行的消息队列系统,但它们的设计哲学、架构特点和适用场景存在显著差异。对比如下。 1、架构设计 RabbitMQ: 基AMQP协议:RabbitMQ是基于AMQP(高级消息队列协议)构建的,支持多…...
俄语画外音的特点
随着全球媒体消费的增加,语音服务呈指数级增长。作为视听翻译和本地化的一个关键方面,画外音在确保来自不同语言和文化背景的观众能够以一种真实和可访问的方式参与内容方面发挥着重要作用。说到俄语,画外音有其独特的特点、挑战和复杂性&…...
【机器学习实战中阶】音乐流派分类-自动化分类不同音乐风格
音乐流派分类 – 自动化分类不同音乐风格 在本教程中,我们将开发一个深度学习项目,用于自动化地从音频文件中分类不同的音乐流派。我们将使用音频文件的频率域和时间域低级特征来分类这些音频文件。 对于这个项目,我们需要一个具有相似大小和相似频率范围的音频曲目数据集…...
Keil5 IDE使用笔记
1 Keil生成bin文件 $K\ARM\ARMCLANG\bin\fromelf.exe --bin --outputL/L.bin !L $K: 表示 Keil 5的安装路径 L: 表示 工程名 !L: 表示 工程名.arf 后缀的文件 可根据实际需要修改 --output 的值调整生成的bin文件的存放路径。 2 下载程序报错 No ST-LINK detected Error: Fla…...
自动化办公|使用Python重命名并移动文件到对应文件夹
在日常的文件管理和处理过程中,我们可能会遇到需要将文件整理到不同文件夹中的需求。例如,我们有一个包含多个文件的目录,文件名的首字符表示文件应该存放在哪个文件夹中。我们可以使用Python脚本来自动完成这个任务,实现文件的分…...
【全栈】SprintBoot+vue3迷你商城(5)
【全栈】SprintBootvue3迷你商城(5) 上一期我们基本完成了与用户相关的接口,而这些接口都是用户才能干的事情,如果你没登录,那么这些接口功能你都不能实现。 那么如何做到这一步呢? 1.Token 作用 身份…...
Java 并发编程:Java 中的乐观锁与 CAS
大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 025 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…...
模拟飞行入坑(五) P3D 多通道视角配置 viewgroup
背景: P3D进行多个屏幕显示的时候,如果使用英伟达自带的屏幕融合成一个屏,或者使用P3D单独拉伸窗口,会使得P3D的画面被整体拉伸,又或者,当使用Multichannel进行多个设备联动时,视角同步组合需要配置&#…...
react中hooks之 React 19 新 Hooks useActionState useFormStatus用法总结
React 19 新 Hooks 使用指南: useActionState & useFormStatus 目录 useActionStateuseFormStatus最佳实践 useActionState 概述 useActionState 是 React 19 引入的新 Hook,用于处理表单 action 的状态更新。它允许你基于表单 action 的结果来更新组件状态…...
为AI聊天工具添加一个知识系统 之48 蒙板程序设计(第二版):Respect九宫格【社会形态:治理】
本文要点 1、词汇表Vocabulary (普通名词) 1) 三组词(数据库支持的三个数字散列): 工作,工件,工具。论题,主题词,关键字。口号,符号,编号。 2…...
靠右行驶数学建模分析(2014MCM美赛A题)
笔记 题目 要求分析: 比较规则的性能,分为light和heavy两种情况,性能指的是 a.流量与安全 b. 速度限制等分析左侧驾驶分析智能系统 论文 参考论文 两类规则分析 靠右行驶(第一条)2. 无限制(去掉了第一条…...
6.5、密集波分复用系统(DWDM)/OTN
图中从左到右分为多个部分,分别代表了信号的输入、传输和输出过程。 左侧是客户侧,有普通接口和彩色接口,分别连接到光转发单元(OTU)。 中间部分是传输线路,包含多个光放大器(OBA、OLA、OPA&…...
Unity3D基于Unity整合BEPUphysicsint物理引擎实战详解
引言 Unity3D是一款流行的游戏引擎,提供了丰富的功能和工具,使开发者能够轻松创建各种类型的游戏。其中,帧同步技术是游戏开发中至关重要的一环,它能确保多个玩家在同一时间内看到的游戏状态是一致的。BEPUphysicsint是一个基于U…...
《探秘鸿蒙Next:如何保障AI模型轻量化后多设备协同功能一致》
在鸿蒙Next的多设备协同场景中,确保人工智能模型轻量化后功能的一致性是一项极具挑战性但又至关重要的任务。以下是一些关键的方法和策略。 统一的模型架构与标准 采用标准化框架:选择如TensorFlow Lite、PyTorch Mobile等在鸿蒙Next上适配良好的轻量化…...
微服务知识——4大主流微服务架构方案
文章目录 1、微服务聚合模式2、微服务共享模式3、微服务代理模式4、微服务异步消息模式 微服务是大型架构的必经之路,也是大厂重点考察对象,下面我就重点详解4大主流微服务架构方案。 1、微服务聚合模式 微服务聚合设计模式,解决了如何从多个…...
Java 方法重写
目录 一、什么是方法重写,为什么需要它 二、方法重写的规则 三、方法重写的实际应用场景 四、方法重写与重载的区别 五、总结 在 Java 编程的精彩世界里,方法重写是一项极为重要且实用的特性,它犹如一把神奇的钥匙,为我们开启…...
华为E9000刀箱服务器监控指标解读
美信监控易内置了数千种常见设备监测器,能够监测超过20万项指标。这些指标涵盖了从硬件设备到软件系统,从网络性能到安全状态等各个方面。如下基于美信监控易——IT基础监控模块,对华为E9000刀箱服务器部分监控指标进行解读。 一、华为E9000…...
正则表达式基础与应用
什么是正则表达式? 正则表达式(Regular Expression,简称regex)是一种用于描述字符串结构的语法规则。它定义了一个搜索模式,可以用来匹配、替换或提取文本中的子串。正则表达式广泛应用于文本处理、数据验证、查找和替…...
微信小程序使用上拉加载onReachBottom。页面拖不动。一直无法触发上拉的事件。
1,可能是原因是你使用了scroll-view的标签,用onReachBottom触发加载事件。这两个是有冲突的。没办法一起使用。如果页面的样式是滚动的是无法去触发页面的onReachBottom的函数的。因此,你使用overflow:auto.来使用页面的某些元素滚动…...
9. 神经网络(一.神经元模型)
首先,先看一个简化的生物神经元结构: 生物神经元有多种类型,内部也有复杂的结构,但是可以把单个神经元简化为3部分组成: 树突:一个神经元往往有多个树突,用于接收传入的信息。轴突:…...
Mysql安装,mysql-installer-community-8.0.41.0
“windowR"键弹出运行框,输入”cmd"进入window命令提示符,输入“mysql -uroot -p"按下回车,再输入密码,按下回车,出现下面界面则是配置成功。 默认会在 C:\Program Files\MySQL\MySQL Server 8.0\bin …...
吴恩达深度学习——神经网络介绍
文章内容来自BV11H4y1F7uH,仅为个人学习所用。 文章目录 什么是神经网络引入神经网络神经元激活函数ReLU隐藏单元 用神经网络进行监督学习监督学习与无监督学习举例 什么是神经网络 引入 已经有六个房子的数据集,横轴为房子大小,纵轴为房子…...
【SpringBoot】SpringBoot中分页插件(PageHelper)的使用
目录 1.分页概念 2.原生写法 3.PageHelper插件分页查询 3.1 介绍 3.2?使用 3.3 Page对象和PageInf对象 1.分页概念 用户查询的数据不可能一次性全部展示给用户(如果用户有一万条数据呢),而是分页展示给用户,这就是分页查询…...
JavaScript DOM 操作与事件处理
Hi,我是布兰妮甜 !在现代Web开发中,JavaScript不仅是用来增强用户体验的工具,它更是创建动态、交互式网页的关键。通过操作文档对象模型(DOM)和处理用户事件,开发者能够构建出响应迅速且功能丰富…...
rstrip 方法是 Python 字符串的一个内置方法,用于 删除字符串右边(末尾)的指定字符
rstrip 方法是 Python 字符串的一个内置方法,用于 删除字符串右边(末尾)的指定字符。 语法: string.rstrip([chars])string:原始字符串。chars:可选参数,指定要删除的字符。默认为 None&#…...
【Elasticsearch】腾讯云安装Elasticsearch
Elasticsearch 认识Elasticsearch安装Elasticsearch安装Kibana安装IK分词器分词器的作用是什么?IK分词器有几种模式?IK分词器如何拓展词条?如何停用词条? 认识Elasticsearch Elasticsearch的官方网站如下 Elasticsearch官网 Ela…...
rsync结合inotify实现文件实时同步
rsync 1.复制工具 本地复制 远程复制 cp dd 跨主机传递文件 rz sz ftp scp rsync nfs samba drdb 2.rsync作用 实现文件的备份,可以是当前主机,也可以是远程主机;可以完全备份,也可以是增量备份 2.1功能 类似于cp的复制功能…...
浅谈 PID 控制算法
PID 控制算法概念 在我们的生活中可能大家都没有听说过 PID 控制算法,但它可以说是无处不在,小到空调的温度控制、无人机的精准悬停、机器人运作系统,大到飞机和火箭的飞行姿态控制都有 PID 的身影。 PID 控制算法,即比例 - 积分…...
react中hooks之useId用法总结以及与useRef用法区别
React useId Hook 使用指南 概述 useId 是 React 18 引入的新 Hook,用于生成唯一的 ID,主要用于可访问性(accessibility)属性。它在服务端和客户端渲染时都能保持一致性。 useId vs useRef useId: 生成稳定的唯一标识符&#…...
Spring Boot AOP实现动态数据脱敏
依赖&配置 <!-- Spring Boot AOP起步依赖 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>/*** Author: 说淑人* Date: 2025/1/18 23:03* Desc…...
AutoGen入门——快速实现多角色、多用户、多智能体对话系统
1.前言 如https://github.com/microsoft/autogen所述,autogen是一多智能体的框架,属于微软旗下的产品。 依靠AutoGen我们可以快速构建出一个多智能体应用,以满足我们各种业务场景。 本文将以几个示例场景,使用AutoGen快速构建出…...
.NET Framework
.NET Framework 是微软推出的一个软件开发平台,主要用于构建和运行 Windows 应用程序。它是 .NET 生态系统的早期版本,专注于 Windows 平台,并提供了丰富的类库和运行时环境。 注意事项 跨平台限制:.NET Framework 主要适用于 W…...
算法中的移动窗帘——C++滑动窗口算法详解
1. 滑动窗口简介 滑动窗口是一种在算法中常用的技巧,主要用来处理具有连续性的子数组或子序列问题。通过滑动窗口,可以在一维数组或字符串上维护一个固定或可变长度的窗口,逐步移动窗口,避免重复计算,从而提升效率。常…...
DuckDB:Golang操作DuckDB实战案例
DuckDB是一个嵌入式SQL数据库引擎。它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的。DuckDB支持各种数据类型和SQL特性。凭借其在以内存为中心的环境中处理高速分析的能力,它迅速受到数据科学家和分析师的欢迎。在这篇博文中࿰…...
C++通过输入3D相机像素点集{u、v、z}和机械手世界坐标点集{X、Y、Z}求得变换矩阵RT(眼在手外)
👑主页:吾名招财 👓简介:工科学硕,研究方向机器视觉,爱好较广泛… 💫签名:面朝大海,春暖花开! C++通过输入3D相机像素点集{u、v、z}和机械手世界坐标点集{X、Y、Z}求得变换矩阵RT(眼在手外) 引言原理简介点集数据(含像素坐标、世界坐标及求解后的变换矩阵)配…...
手机怎么远程操控电脑?
远程看看是一款免费使用的远程控制软件,兼容 Windows、iOS 和 Android 系统,用户可以通过电脑或移动设备轻松远程控制电脑。不仅如此,远程看看还提供了文件传输、在线聊天和隐私屏等实用功能。如果您需要在远程操作时隐藏被控电脑的操作界面&…...
【Golang/gRPC/Nacos】在golang中将gRPC和Nacos结合使用
Nacos与gRPC 前言 关于这部分,前段时间我在看文档以及视频教程的时候,怎么都想不明白,到底为什么要用gRPC是什么,他在项目中应该充当什么样的角色?Nacos又是如何和他结合的? 于是我就决定去看看一些小项…...
数据库-多表关系
项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构。由于业务之间相互关联,所以各个表结构之间也存在着各种联系。 多表关系: 一对多(多对一) 一对一 多对多 多表关系 一对…...
回归算法、聚类算法、决策树、随机森林、神经网络
这也太全了!回归算法、聚类算法、决策树、随机森林、神经网络、贝叶斯算法、支持向量机等十大机器学习算法一口气学完!_哔哩哔哩_bilibili 【线性回归、代价函数、损失函数】动画讲解_哔哩哔哩_bilibili 14分钟详解所有机器学习算法:…...
RabbitMQ1-消息队列
目录 MQ的相关概念 什么是MQ 为什么要用MQ MQ的分类 MQ的选择 RabbitMQ RabbitMQ的概念 四大核心概念 RabbitMQ的核心部分 各个名词介绍 MQ的相关概念 什么是MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出&am…...
第17章:Python TDD回顾与总结货币类开发
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
7、数组知识点汇总
一、 数组基本概念 程序算法数据结构 算法:解决程序的流程步骤数据结构:将数据按照某种特定的结构来存储设计良好的数据结构会导致良好的算法。ArrayList、LinkedList 数组是最简单的数据结构。 1、数组: 数组:存放同一种类型…...