123456789101112131415161718192021222324252627 |
- func arrayPairSum(nums []int) int {
- set := [20001]int{}
- for _, i := range nums {
- set[i+10000]++
- }
- sum, flag := 0, 1
- for i, val := range set {
- if val != 0 {
- if val&1 == 0 {
- sum += val / 2 * (i - 10000)
- } else {
- sum += (val + flag) / 2 * (i - 10000)
- flag ^= 1
- }
- }
- }
- return sum
- }
- func arrayPairSumSort(nums []int) int {
- sort.Ints(nums)
- sum := 0
- for i := len(nums) - 2; 0 <= i; i -= 2 {
- sum += nums[i]
- }
- return sum
- }
|