|
@@ -9,6 +9,8 @@ func (pts Points) Less(i, j int) bool {
|
|
|
}
|
|
|
func (pts Points) Swap(i, j int) { pts[i], pts[j] = pts[j], pts[i] }
|
|
|
|
|
|
+type none struct{}
|
|
|
+
|
|
|
/**
|
|
|
* Definition for a point.
|
|
|
* type Point struct {
|
|
@@ -18,9 +20,6 @@ func (pts Points) Swap(i, j int) { pts[i], pts[j] = pts[j], pts[i] }
|
|
|
*/
|
|
|
func outerTrees(points []Point) []Point {
|
|
|
k, n := 0, len(points)
|
|
|
- if n == 1 {
|
|
|
- return points
|
|
|
- }
|
|
|
sort.Sort(Points(points))
|
|
|
pts := make([]Point, n)
|
|
|
for i := 0; i < n; i++ {
|
|
@@ -35,9 +34,9 @@ func outerTrees(points []Point) []Point {
|
|
|
pts[k] = points[i]
|
|
|
k++
|
|
|
}
|
|
|
- set := make(map[Point]bool)
|
|
|
+ set := make(map[Point]none)
|
|
|
for i := 0; i < k; i++ {
|
|
|
- set[pts[i]] = true
|
|
|
+ set[pts[i]] = none{}
|
|
|
}
|
|
|
k = 0
|
|
|
for i := n - 1; 0 <= i; i-- {
|
|
@@ -53,7 +52,7 @@ func outerTrees(points []Point) []Point {
|
|
|
k++
|
|
|
}
|
|
|
for i := 0; i < k; i++ {
|
|
|
- set[pts[i]] = true
|
|
|
+ set[pts[i]] = none{}
|
|
|
}
|
|
|
res := make([]Point, len(set))
|
|
|
k = 0
|