美文网首页每日打卡
2021-11-16 391 完美矩形

2021-11-16 391 完美矩形

作者: 16孙一凡通工 | 来源:发表于2021-11-17 09:39 被阅读0次

    满足矩形区域的面积等于所有矩形的面积之和,还要满足矩形区域四角的顶点只能出现一次,且其余顶点的出现次数只能是两次或四次。

    go版本:

    import (
        "fmt"
    )
       type point struct{ x, y int }
    func isRectangleCover(rectangles [][]int) bool {
    
        // 算面积的思路, s1 := mapset.NewSet(1, 2, 3, 4)make()
        hashmap:=make(map[point]int)
    
        square_all:=0
        square_max:=0
       max_a,max_b,max_c,max_d:=rectangles[0][0],rectangles[0][1],rectangles[0][2],rectangles[0][3]
    
        for i:=0;i<len(rectangles);i++{
            a,b,c,d:=rectangles[i][0],rectangles[i][1],rectangles[i][2],rectangles[i][3]
            square_all+=(c-a)*(d-b)
            max_a=min(max_a,a)
             max_b=min(max_b,b)
                max_c=max(max_c,c)
                  max_d=max(max_d,d)
                  hashmap[point{a,b}]++
                  hashmap[point{a,d}]++
                  hashmap[point{c,d}]++
                  hashmap[point{c,b}]++
        }
        square_max=(max_c-max_a)*(max_d-max_b);
        fmt.Println(square_all)
        fmt.Println(square_max)
       if square_max!=square_all || hashmap[point{max_a,max_b}]!=1 || hashmap[point{max_a,max_d}]!=1 || hashmap[point{max_c,max_d}]!=1 || hashmap[point{max_c,max_d}]!=1 {
           return false;
       }
    
       delete(hashmap,point{max_a,max_b})
        delete(hashmap,point{max_a,max_d})
         delete(hashmap,point{max_c,max_b})
        delete(hashmap,point{max_c,max_d})
    
        for _,value :=range hashmap{
            if value !=2 && value!=4{
                return false
            }
        }
        return true;
      
    }
    func max(nums1 int,nums2 int)int{
        if nums1>nums2{
            return nums1;
        }
        return nums2;
    }
    func min(nums1 int,nums2 int)int{
        if nums1>nums2{
            return nums2;
        }
        return nums1;
    }
    

    相关文章

      网友评论

        本文标题:2021-11-16 391 完美矩形

        本文链接:https://www.haomeiwen.com/subject/ptxhtrtx.html