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