力扣(代码随想录)数组篇

77 阅读2分钟

数组的概念

  • 1.数组下标都是从0开始
  • 2.数组不能删除只能进行覆盖
  • 3.数组内存空间都是连续的

二分查找类型

二分查找类型有两个限制条件,1.数组是有序数组。2.数组内无重复元素

所用到的js方法和属性

  1. 向下取整::Math.floor() 方法会返回小于或等于给定数字的最大整数。
Math.floor(4.9); // 输出 4
Math.floor(-3.1); // 输出 -4
  1. 向上取整:Math.ceil() 方法会返回大于或等于给定数字的最小整数。
Math.ceil(4.1); // 输出 5
Math.ceil(-3.9); // 输出 -3
  1. 四舍五入:可以使用 Math.round() 方法
Math.round(4.5); // 输出 5
Math.round(4.1); // 输出 4
Math.round(-3.9); // 输出 -4

移除元素类型

一般可以使用暴力解法或者快慢指针

有序数组的平方

限制条件:1.给定非递减序列数组。2.返回的数组也按照非递减序列排序

所用到的js方法和属性

  1. 使用数组字面量:这是最常见的定义数组的方式,使用方括号 [] 来包裹数组元素
let numbers = [1, 2, 3, 4, 5];
let fruits = ['apple', 'banana', 'orange'];
let mixedArray = [1, 'apple', true];
  1. 使用Array构造函数:你可以使用Array构造函数来创建一个空数组或指定初始元素的数组
let emptyArray = new Array();
let arrayWithSize = new Array(5); // 创建有5个空位的数组
let arrayWithElements = new Array('apple', 'banana', 'orange');
  1. 使用Array.from()方法:通过传入类数组或可迭代对象来创建数组。
let arrayFromRange = Array.from({ length: 5 }, (_, index) => index + 1); // 创建一个包含1到5的数组
let arrayFromString = Array.from('hello'); // 将字符串转换为字符数组

长度最小的子数组

可以采用暴力解法和滑动窗口

螺旋矩阵

所用到的js方法和属性

  1. 创建一个二维数组
let res = new Array(n).fill(0).map(() => new Array(n).fill(0));
  • new Array(n):创建一个长度为 n 的新数组,但数组中的元素尚未初始化。

  • .fill(0):使用 fill(0) 方法将上面创建的数组中的所有元素填充为 0

  • .map(() => new Array(n).fill(0)):对填充为 0 的一维数组进行映射操作,将每个元素映射为一个新的长度为 n 的数组,其中元素都为 0