File tree Expand file tree Collapse file tree 3 files changed +91
-0
lines changed
solution/1900-1999/1943.Describe the Painting Expand file tree Collapse file tree 3 files changed +91
-0
lines changed Original file line number Diff line number Diff line change @@ -181,6 +181,38 @@ public:
181181};
182182```
183183
184+ #### Go
185+
186+ ```go
187+ func splitPainting(segments [][]int) [][]int64 {
188+ d := make(map[int]int64)
189+ for _, seg := range segments {
190+ d[seg[0]] += int64(seg[2])
191+ d[seg[1]] -= int64(seg[2])
192+ }
193+ dList := make([]int, 0, len(d))
194+ for k := range d {
195+ dList = append(dList, k)
196+ }
197+ sort.Ints(dList)
198+
199+ var ans [][]int64
200+
201+ i := dList[0]
202+ cur := d[i]
203+ for j := 1; j < len(dList); j++ {
204+ it := d[dList[j]]
205+ if cur > 0 {
206+ ans = append(ans, []int64{int64(i), int64(dList[j]), cur})
207+ }
208+ cur += it
209+ i = dList[j]
210+ }
211+
212+ return ans
213+ }
214+ ```
215+
184216<!-- tabs: end -->
185217
186218<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -179,6 +179,38 @@ public:
179179};
180180```
181181
182+ #### Go
183+
184+ ```go
185+ func splitPainting(segments [][]int) [][]int64 {
186+ d := make(map[int]int64)
187+ for _, seg := range segments {
188+ d[seg[0]] += int64(seg[2])
189+ d[seg[1]] -= int64(seg[2])
190+ }
191+ dList := make([]int, 0, len(d))
192+ for k := range d {
193+ dList = append(dList, k)
194+ }
195+ sort.Ints(dList)
196+
197+ var ans [][]int64
198+
199+ i := dList[0]
200+ cur := d[i]
201+ for j := 1; j < len(dList); j++ {
202+ it := d[dList[j]]
203+ if cur > 0 {
204+ ans = append(ans, []int64{int64(i), int64(dList[j]), cur})
205+ }
206+ cur += it
207+ i = dList[j]
208+ }
209+
210+ return ans
211+ }
212+ ```
213+
182214<!-- tabs: end -->
183215
184216<!-- solution: end -->
Original file line number Diff line number Diff line change 1+ func splitPainting (segments [][]int ) [][]int64 {
2+ d := make (map [int ]int64 )
3+ for _ , seg := range segments {
4+ d [seg [0 ]] += int64 (seg [2 ])
5+ d [seg [1 ]] -= int64 (seg [2 ])
6+ }
7+ dList := make ([]int , 0 , len (d ))
8+ for k := range d {
9+ dList = append (dList , k )
10+ }
11+ sort .Ints (dList )
12+
13+ var ans [][]int64
14+
15+ i := dList [0 ]
16+ cur := d [i ]
17+ for j := 1 ; j < len (dList ); j ++ {
18+ it := d [dList [j ]]
19+ if cur > 0 {
20+ ans = append (ans , []int64 {int64 (i ), int64 (dList [j ]), cur })
21+ }
22+ cur += it
23+ i = dList [j ]
24+ }
25+
26+ return ans
27+ }
You can’t perform that action at this time.
0 commit comments