代码随想录算法训练营第2天|数组Part02
给定一个含有
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
事件:在输入结束后处理数据 - 数据解析:将字符串转换为数值、数组等类型,根据需求进行处理