代码随想录算法训练营第2天 | 数组总结

本文总结了数组的基础知识,包括数组定义、JS数组特点,以及解题中常用的二分法、双指针法和滑动窗口策略。强调在解决算法问题时,应注意循环不变量、区间一致性和画图辅助理解的重要性,同时指出扎实的基础知识和实践编码是提升的关键。
摘要由CSDN通过智能技术生成

数组总结

基础知识📚

数组定义: 数组是存放在连续内存空间上的相同类型数据的集合

注意点:

  1. 数组下标从0开始。
  2. 数组内存空间的地址是连续的。
  3. 因为地址连续,所以不能直接删除,只能覆盖 => 理解:移动其余元素覆盖删除元素的地址
  4. 二维数组即数组的每一个元素都是一个数组,三维、四维、n维同理。
  5. 二维数组在内存中的空间连续,连续指:四条连续的的地址空间

JS数组注意点:

  1. JS不同于传统语言,JS的数组中存放的数据类型可以不同,因此地址不一定连续。在存放不同数据类型的情况下,对数组进行下标取值采用的是哈希映射的方式。
  2. 当代JS引擎为了优化性能,在遇到数据类型相同的数组时会自动分配给其一个连续的内存空间,也就是说,一个由相同类型的元素组成的数组,它的内存地址仍然是连续的
  3. 此外,JS提供了ArrayBuffer 这种方式以帮助程序员获取一个固定长度的内存,使用ArrayBuffer 这一技术的数据结构很多,例如DataView定型数组等。

解题思路🤔

1.二分法

题目举例ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值