836题目描述:
矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。矩形的上下边平行于 x 轴,左右边平行于 y 轴。
 如果相交的面积为 正 ,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。
 给出两个矩形 rec1 和 rec2 。如果它们重叠,返回 true;否则,返回 false 。
解析:
主要是注意上下左右四个边界,边界找到了,也就好理解了
Java:
public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
        if(rec1[2] <= rec2[0] || rec1[0] >= rec2[2] || rec1[1] >= rec2[3] || rec1[3] <= rec2[1]) {
            return false;
        } else {
            return true;
        }
    }
JavaScript:
var isRectangleOverlap = function(rec1, rec2) {
    if(rec1[2] <= rec2[0] || rec1[0] >= rec2[2] || rec1[1] >= rec2[3] || rec1[3] <= rec2[1]) {
        return false;
    } else {
        return true;
    }
};
876题目描述:
给定一个头结点为 head 的非空单链表,返回链表的中间结点。
 如果有两个中间结点,则返回第二个中间结点。
解析:
快慢指针方法
Java:
public ListNode middleNode(ListNode head) {
        ListNode fast = head;
        ListNode slow = head;
        while(fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
        }
        return slow;
    }
JavaScript:
var middleNode = function(head) {
    let fast = head;
    let slow = head;
    while(fast !== null && fast.next !== null) {
        slow = slow.next;
        fast = fast.next.next;
    }
    return slow;
};

 京公网安备 11010502036488号
京公网安备 11010502036488号