集合与列表
首先,集合、列表存在明显区别;
集合:通俗来说就是一个及以上的元素所构成的整体,内容宽泛;
即同一个集合,元素类型可以不同,且元素没有顺序,在实际应用中,通常会增加一些规则作为限定,进而形成数据结构。
列表:具有线性结构,但长度不定;
即,元素类型不同,但具有顺序。
列表中最常见的两种表现形式是数组和链表,此外还有栈和队列;
数组:具备了列表的特征,在不同语言环境下,还具备其他特征——索引,在python中,列表索引是从0开始;
在内存中直观来看,数组是占据连续空间的,而列表(以链表为例),则是不一定连续储存;
数组的基本操作
nums = [1, 3, 5, 6, 8]
内存地址为 2001,2002,2003,2004,2005;
1.读取元素:
假如我们想要访问索引为 2
处的元素 "5"
时,计算机会进行以下计算:
找到该数组的索引 0 的内存地址:2001;
将内存地址加上索引值,作为目标元素的地址,即 2001 + 2 = 2003;对应的元素为 "5"
,这时便找到了目标元素。
2.查找元素:
查找元素是从索引处进行逐个查找,因此查找元素的时间复杂度随着元素位置深入而增加;
此外数组的操作还有插入与删除,总体较为简单;
寻找数组的中心索引:
计算数组的中心坐标,可返回两种值
当 中心坐标 左右元素相加的和相等时,返回中心坐标;
其中有一种特殊情况,当中心坐标位于最左端,即左侧元素和为0,且与右侧相等时,返回 0;
如果数组有多个中心坐标,则返回最左端的值;
如果数组不存在中心坐标,则返回 -1;
具体如下: