funcadvantageCount(nums1 []int, nums2 []int) []int { sort.Ints(nums1) n := len(nums1) ans := make([]int, n) ids := make([]int, n) for i := 0; i < n; i++ { ids[i] = i } sort.Slice(ids, func(i, j int)bool { return nums2[ids[i]] < nums2[ids[j]] }) left, right := 0, n-1 for _, v := range nums1 { if v > nums2[ids[left]] { ans[ids[left]] = v left++ } else { ans[ids[right]] = v right-- } } return ans }