Cheng
Cheng
方法一:**遍历** * 先遍历到尾部 * 在遍历过程中让节点新增属性 pre 使单向链表变成双向链表 * 遍历到尾部时开始指向反转并删除节点的 pre 属性 边界条件: * 在头部时,节点的 pre 属性为 null * 到尾部时,节点的 next 属性为 null ```js function reverseList(head) { // 链表只有一个元素时 if( head.next...
```js function reverseStr(str) { return str.match(/[\w!,]+/g).reverse().join(" "); } ```
方法:遍历 * 先将两个链表转换成数组结构 * 对其中一个数组进行遍历,每次遍历判断另一个数组是否含有该值 * 遍历结束后如果没有找到就返回 null ```js function intersectNode( head1, head2 ) { var arr1 = [], arr2 = [], theValue = null; transformToArray( head1, arr1 ); transformToArray(...
``` function intersection(arr1, arr2) { if( arr1 instanceof Array && arr2 instanceof Array ){ return Array.from(new Set(arr1.filter(item=>new Set(arr2).has(item)))); } throw 'What I need are two arrays'; } ```
@597796340 多谢提醒 ```js function intersection(arr1, arr2) { if( arr1 instanceof Array && arr2 instanceof Array ){ const set = new Set(arr2); return Array.from(new Set(arr1.filter(item=>set.has(item)))); } throw 'What I need are...
```js function intersection(...arr) { let result = []; arr.forEach(arr => { if( arr instanceof Array ){ // 如果是第一个数组,则直接将该数组去重然后 push 到目标数组中 if( !result.length ) { result.push(...new Set(arr)); return ; } //...
大致思路: * 新建一个变量 result 用于存储重叠部分 * 对传入数组进行遍历 * 第一次遍历时变量 result 即为第一个元素 * 之后每次遍历都找出开头重叠部分,重叠部分只能保持不变或变少,当有一次为空时停止遍历 (arr.some()) 比较字符串方法: 1. 将字符串转换为数组 2. 通过字符串下标进行比较 ```js function overlap(arr) { var result = ''; var firstTime =...
1. 继续阅读《实现领域驱动设计》 2. 单调栈算法题 —— LeetCode 1856
请教一下 `& { _?: [O, K] }` 的作用是什么