const newStr = s.replace(/[^\w]/g, '').toLocaleLowerCase();
toLocaleLowerCase()
不改变原来的字符串, toLowerCase()
88. 合并两个有序数组
思路:方法一 先合并再排序,复杂度(m+n)log(m+n)
方法二 倒着往里面放排好的数据,双指针比较,复杂度(m+n)
方法三:在临时数组中暂存排序好的数组,但要注意题目中要求存储在nums1中,故而要挨个改变nums1中的值,而不是直接把数组命名为nums1
arr.slice()取数组中的某一段,不改变原始数组
arr.concat()数组合并
let newArr = arr.splice(起始索引index, 删除的个数, 新增元素1, 新增元素2...) // 返回被删除元素组成的新数组
i--
先赋值再减
移动零
思路:两个指针,一个记录处理后的序列中0之前的最后一个位置,另一个遍历,遍历到非零的就和第一个指针的数交换,第一个指针后移
560. 和为 K 的子数组
js里面字典是map
map.set()
是增
map.has()
里面是否有某个键
map.get()
获得对应键的值
思路:应该先判断sum-k是否在字典中,再把当前的sum值加入字典(考虑k=0的情况)
数组遍历的十二种方法
数组的一些用法
for(const i in arr) //只能拿到索引
for(const i of arr) //拿到数组里面每一个值
js中直接交换
[nums[i], nums[j]] = [nums[j], nums[i]]