题目

计算矩形覆盖面积

class Solution {
public:
    int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        
        int a =0;
        if(E<C&&G>A)
        {
            if(G>=C&&E>=A)
            {
               
                if(H>=D&&F<=B)
                {
                        a = (C-E)*(D-B);
                }
                else if(H>B&&H<D&&F<=B)
                    {
                        a = (C-E)*(H-B);
                    }
                    else if(H>=D&&F>B&&F<D)
                    {
                        a = (C-E)*(D-F);
                    }
                    else if(H<D&&F>B)
                    {
                        a = (C-E)*(H-F);
                    }
                
            }
            
            if(G<C&&E>=A)
            {
                
                if(H>=D&&F<=B)
                {
                        a = (G-E)*(D-B);
                }
                else if(H>B&&H<D&&F<=B)
                    {
                        a = (G-E)*(H-B);
                    }
                    else if(H>=D&&F>B&&F<D)
                    {
                        a = (G-E)*(D-F);
                    }
                    else if(H<D&&F>B)
                    {
                        a = (G-E)*(H-F);
                    }
            }
            
            if(E<A&&G<C)
            {
                 if(H>=D&&F<=B)
                {
                        a = (G-A)*(D-B);
                }
                else if(H>B&&H<D&&F<=B)
                    {
                        a = (G-A)*(H-B);
                    }
                    else if(H>=D&&F>B&&F<D)
                    {
                        a = (G-A)*(D-F);
                    }
                    else if(H<D&&F>B)
                    {
                        a = (G-A)*(H-F);
                    }
            }
            
            if(E<A&&G>=C)
            {
                 if(H>=D&&F<=B)
                {
                        a = (C-A)*(D-B);
                }
                else if(H>B&&H<D&&F<=B)
                    {
                        a = (C-A)*(H-B);
                    }
                    else if(H>=D&&F>B&&F<D)
                    {
                        a = (C-A)*(D-F);
                    }
                    else if(H<D&&F>B)
                    {
                        a = (C-A)*(H-F);
                    }
            }
        }
        
        return (C-A)*(D-B)-a+(G-E)*(H-F);
        
    }
};

相关文章:

  • 2021-12-02
  • 2021-08-04
  • 2021-12-02
  • 2021-09-01
  • 2021-11-04
  • 2021-03-30
  • 2021-08-19
  • 2021-11-12
猜你喜欢
  • 2021-10-22
  • 2021-01-11
  • 2021-10-02
  • 2021-08-28
  • 2021-08-09
  • 2021-11-04
  • 2021-11-23
相关资源
相似解决方案