240 发简信
IP属地:安大略
  • 貌似现在leetcode多了rectangle是个点的check? 还有一个rectangle inside另外一个rectangle
    感觉个人做 写了很多extra if statement来check 不知道有没有更好的解法

    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
    // A to G's right or E to C's right to avoid X
    // Similarly B(bottom!!!) >= H or F>= D
    if ( (A >= G ) ||(E >= C) ||( B>=H ) ||(F >= D) ){
    return (C-A)*(D-B) + (G-E)*(H-F);
    }else{
    //prevents points
    if ((A==C)||(B==D)||(E==G)||(F==H)){
    return (A-C)*(B-D) + (E-G)*(F-H) ;
    }
    // prevents inner within a larger rectangle

    int maxLx = A - E > 0 ? A: E;
    int maxLy = Math.max(B, F);
    int minLx = Math.min(C,G);
    int minLy = Math.min(D, H);

    // check if inner rectangle
    if ( ((E-A) >=0 && (C-G)>=0) && ((F-B)>=0) && ((D-H) >=0)||
    ( ((A-E)>=0)&& ((G-C)>=0 )&& ((B-F)>=0)&&((H-D)>=0) )
    ){

    return (C-A)*(D-B) - (G-E)*(H-F) >=0 ? (C-A)*(D-B): (G-E)*(H-F);
    }
    int delta =(maxLx - minLx)*(maxLy - minLy);

    return (C-A)*(D-B) + (G-E)*(H-F) - delta;
    }

    }

  • 貌似现在leetcode多了rectangle是个点的check? 还有一个rectangle inside另外一个rectangle
    感觉个人做 写了很多extra if statement来check 不知道有没有更好的解法

    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
    // A to G's right or E to C's right to avoid X
    // Similarly B(bottom!!!) >= H or F>= D
    if ( (A >= G ) ||(E >= C) ||( B>=H ) ||(F >= D) ){
    return (C-A)*(D-B) + (G-E)*(H-F);
    }else{
    //prevents points
    if ((A==C)||(B==D)||(E==G)||(F==H)){
    return (A-C)*(B-D) + (E-G)*(F-H) ;
    }
    // prevents inner within a larger rectangle

    int maxLx = A - E > 0 ? A: E;
    int maxLy = Math.max(B, F);
    int minLx = Math.min(C,G);
    int minLy = Math.min(D, H);

    // check if inner rectangle
    if ( ((E-A) >=0 && (C-G)>=0) && ((F-B)>=0) && ((D-H) >=0)||
    ( ((A-E)>=0)&& ((G-C)>=0 )&& ((B-F)>=0)&&((H-D)>=0) )
    ){

    return (C-A)*(D-B) - (G-E)*(H-F) >=0 ? (C-A)*(D-B): (G-E)*(H-F);
    }
    int delta =(maxLx - minLx)*(maxLy - minLy);

    return (C-A)*(D-B) + (G-E)*(H-F) - delta;
    }

    }

    Overlap Rectangle

    这道题与Leetcode 223题RectangleArea十分相似。 题目 给定两个长方形左下角和右上角的坐标,判断是否有重叠,返回true或者false。 Java 代码...