File tree 3 files changed +91
-0
lines changed
solution/1900-1999/1943.Describe the Painting
3 files changed +91
-0
lines changed Original file line number Diff line number Diff line change @@ -181,6 +181,38 @@ public:
181
181
};
182
182
```
183
183
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
+
184
216
<!-- tabs: end -->
185
217
186
218
<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -179,6 +179,38 @@ public:
179
179
};
180
180
```
181
181
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
+
182
214
<!-- tabs: end -->
183
215
184
216
<!-- 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