一. 数组简单介绍
数组是在程序设计中,把具有相同类型的若干元素按有序的形式组织起来的一种形式。 数组 (Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素。
数组作为线性表的实现方式之一,数组中的元素在内存中是连续存储的,且每个元素占相同大小的内存。
一维数组
数组是存储在连续内存空间上的相同类型类型的集合,其通过索引(脚标)快速访问每个元素的值。在大多数编程语言中,脚标(索引)从 0 算起。数组是由相同类型的数据元素构成的有限集合,一维数组可以看作一个线性表。一维数组的元素有1个下标。
数组下标都是从0开始的。
数组在内存空间的地址是连续的。
删除或者增添元素时难免要移动其他元素的地址。//把元素放在其它位置上
二维数组
二维数组也可以看作一个线性表X=(X0,X1,X2,…,Xn-1),只不过每一个数据元素Xi也是一个线性表。二维数组的元素中有 2 个下标。
但无论是一维还是二维,数组是在内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。
二. 数组的优缺点
优点
1. 按照索引查询元素速度快
2. 按照索引遍历数组方便
缺点
1. 数组的大小固定后就无法扩容了
2. 数组只能存储一种类型的数据
3. 添加,删除的操作慢,因为要移动其他的元素。
数组适用频繁查询,对存储空间要求不大,很少增加和删除的情况。
三. leetcode实战
1. leetcode66 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
class Solution {
pub