代码随想录算法训练营第2天|数组Part02
记录题目:
- 长度最小的子数组
- 螺旋矩阵 II
- 区间和
给定一个含有
n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于
target的长度最小的 子数组[numsl, numsl+1, ..., numsr-1, numsr],并返回其长度。如果不存在符合条件的子数组,返回0。
- 同样是双指针,滑动窗口是暴力解法的优化。
- 通过 x === Infinity或x === -Infinity判断是否为无穷值。
- 滑动窗口的时间复杂度:每个元素在滑动窗后进来操作一次,出去操作一次,所以时间复杂度是 2 × n 也就是O(n)。
给你一个正整数
n,生成一个包含1到n^2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。
两种创建二维数组方法的对比:
两种创建二维数组(生成 n×m 矩阵)的方法对比:
| 方法 | new Array(n).fill(0).map(() => new Array(m).fill(0)) | Array.from({ length: n }, () => new Array(m).fill(0)) | 
|---|---|---|
| 初始化方式 | 先生成一维数组并填充,再用 map替换为长度为 m 的子数组 | 从类数组对象生成,回调函数创建长度为 m 的子数组 | 
| 空槽处理 | fill(0)确保每个元素非空,map可正常执行 | 不存在空槽问题,直接遍历索引 | 
| 性能 | 多一次 fill(0),性能略低 | 略优,略微更简洁高效 | 
| 兼容性 | ES6+,现代浏览器与 Node.js 支持 | ES6+,兼容性相同 | 
题目描述:给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。
输入描述:第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间下标:a,b (b > = a),直至文件结束。
输出描述:输出每个指定区间内元素的总和。
Node.js 输入输出处理详解
| 1 | // 引入 readline 模块,用于逐行读取标准输入 | 
Node.js 输入处理的核心步骤
- 创建读取接口:readline.createInterface()绑定标准输入输出流
- 监听 line事件:逐行读取输入,存入数组等数据结构
- 监听 close事件:在输入结束后处理数据
- 数据解析:将字符串转换为数值、数组等类型,根据需求进行处理