一维数组 如何寻找数组的中心索引

文章探讨了集合和列表的区别,集合允许不同类型的元素且无序,而列表具有线性结构和顺序。列表的两种主要形式是数组和链表,数组以连续内存存储,索引从0开始。数组的读取和查找操作以及插入、删除的复杂度也进行了说明。此外,文章还提到了寻找数组中心索引的算法。
摘要由CSDN通过智能技术生成

集合与列表

首先,集合、列表存在明显区别;

集合:通俗来说就是一个及以上的元素所构成的整体,内容宽泛;

即同一个集合,元素类型可以不同,且元素没有顺序,在实际应用中,通常会增加一些规则作为限定,进而形成数据结构。

列表:具有线性结构,但长度不定;

即,元素类型不同,但具有顺序。

列表中最常见的两种表现形式是数组和链表,此外还有栈和队列;

数组:具备了列表的特征,在不同语言环境下,还具备其他特征——索引,在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;

具体如下:

f0e330d91d6446f292145a75c014712f.png

14b983fd624a41fbb6ed8f25a61abe34.png 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值