瑞星 发表于 2023-11-3 04:11:40

数据结构与算法 | 数组(Array)

数组(Array)

数组(Array)应该是最基础的数据结构之一,它由相同类型的元素组成的集合,并按照一定的顺序存储在内存中。每个元素都有一个唯一的索引,可以用于访问该元素。
        // java 数组示例
        int[] numbers1 = {2,0,2,3,9,23};
        // 或者
        int[] numbers2 = new int;基本概念

数组基本概念 —— 数组索引、数组元素、数组长度


[*]数组索引(Index): 数组中的每个元素都有一个唯一的整数索引,从0开始计数。索引用于访问数组中的元素。
[*]数组元素(Element): 数组中的元素必须是相同类型的数据,可以是整数、浮点数、字符、对象等。
[*]数组长度(Length): 数组的长度是指数组中包含的元素数量。
https://img2023.cnblogs.com/blog/409098/202310/409098-20231016164436069-1214060867.png
其具备一些性质:


[*]连续存储(Contiguous Memory): 数组中的元素在内存中是连续存储的,这意味着通过索引可以直接计算出元素的地址。
[*]随机访问时间(Constant Time Access): 由于元素的连续存储和索引的存在,通过索引访问数组中的某个元素通常只需要常数时间O(1)。( PS: 什么叫随机访问? 是计算机领域的一个重要概念,指的是能够以大致相等的时间访问存储介质中的任何数据元素,而不受其物理存储位置顺序的限制。通俗点说,随便获取任意一个元素。)
基本应用(Basic)

数组的结构本身比较简单,在解决常见面试算法问题中灵活应用数组索引来访问数据是关键。
Leetcode 26. 删除有序数组中的重复项【简单】

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
https://img2023.cnblogs.com/blog/409098/202310/409098-20231016164450249-552291376.png
LeetCode 674. 最长连续递增序列【简单】

<blockquote>给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。

连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l
页: [1]
查看完整版本: 数据结构与算法 | 数组(Array)