LeetCode 223 223. Rectangle Area

题目

计算矩形覆盖面积

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);
        
    }
};

猜你喜欢

转载自www.cnblogs.com/dacc123/p/12350362.html
223