手把手带你刷力扣(2)-数组
数组:在连续的内存空间中,存储一种相同类型的元素。
区分:
(1)元素和索引
索引是元素的下标,在数组中的相对位置。
元素 | 1 | 2 | 3 |
索引 | 0 | 1 | 2 |
(2)数组访问和数组搜索
访问a[1]是2,搜索2得到索引1。
重要操作的时间复杂度:
(1)访问 O(1)
(2)搜索 O(N)
(3)插入 O(N)
(4)删除 O(N)
注:由于数组存储在连续内存空间的特点,知道需要访问的索引根据数组首地址计算就可以直接访问其地址,所以时间复杂度是O(1);搜索最坏情况需要遍历数组,插入和删除最坏情况中数组中的元素都需要移动,所以时间复杂度是O(N)。
特点:适合读不适合写,读多写少。
常用操作:
- 创建数组
- 添加元素
- 访问元素
- 修改元素
- 删除元素
- 遍历数组
- 查找元素
- 数组的长度
- 数组排序(语言内置的排序方法)
Python3:
Java:
【更正】:Java代码中获取数组长度的时间复杂度为O(1)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧