add new solutions
This commit is contained in:
parent
9a10695e8c
commit
ca24d0a56a
30 changed files with 697 additions and 16 deletions
42
solutions/22/q2215/solution.go
Normal file
42
solutions/22/q2215/solution.go
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
package q2215
|
||||
|
||||
import "slices"
|
||||
|
||||
func skip(nums []int, i int) int {
|
||||
if i < len(nums) {
|
||||
for c := nums[i]; i < len(nums) && nums[i] == c; i++ {
|
||||
}
|
||||
}
|
||||
return i
|
||||
}
|
||||
|
||||
func findDifference(nums1 []int, nums2 []int) [][]int {
|
||||
slices.Sort(nums1)
|
||||
slices.Sort(nums2)
|
||||
d1 := []int{}
|
||||
d2 := []int{}
|
||||
|
||||
i1, i2 := 0, 0
|
||||
for i1 < len(nums1) || i2 < len(nums2) {
|
||||
// num2[i2] is unique
|
||||
if i1 == len(nums1) || i2 < len(nums2) && nums2[i2] < nums1[i1] {
|
||||
d2 = append(d2, nums2[i2])
|
||||
i2 = skip(nums2, i2)
|
||||
continue
|
||||
}
|
||||
|
||||
// num1[i1] is unique
|
||||
if i2 == len(nums2) || i1 < len(nums1) && nums1[i1] < nums2[i2] {
|
||||
d1 = append(d1, nums1[i1])
|
||||
i1 = skip(nums1, i1)
|
||||
continue
|
||||
}
|
||||
|
||||
i1 = skip(nums1, i1)
|
||||
i2 = skip(nums2, i2)
|
||||
}
|
||||
|
||||
return [][]int{d1, d2}
|
||||
}
|
||||
|
||||
var _ = findDifference
|
||||
Loading…
Add table
Add a link
Reference in a new issue