Meituan 前端

56 阅读1分钟

1 useEffect 代码理解 2 数组中每个元素是个对象,[{w: 111, val: 222}, {w: 190, val: 222}], 根据w的值进行merge 利用 Map 3 LCR 026. 重排链表

image.png

var reorderList = function (head) {
    if (!head || !head.next) {
        return head;
    }
    const arr = [];
    while (head) {
        arr.push(head);
        head = head.next;
    }
    let l = 0, r = arr.length - 1;
    while(l < r - 1) {
        arr[l].next = arr[r];
        l++;
        arr[r].next = arr[l];
        r--;
    }
    // 偶数个, 最后l r 相邻,需要 l -> r
    if (l === r - 1) {
        arr[l].next = arr[r];
       
    }
    // l === r OR l === r - 1 
    arr[r].next = null;
    
    return arr[0];
};

4 歌词拆分

5 接雨水

var maxArea = function(height) {
 let res = 0;
 let left = 0, right = height.length - 1;
 while(left < right) {
     let area = Math.min(height[left], height[right]) * (right - left)
     if (area > res) {
         res = area;
     }

     if (height[right] > height[left]) {
         left++;
     } else {
         right--;
     }
 }
 return res;
};