645.set-mismatch.go 309 B

123456789101112131415161718192021
  1. func findErrorNums(nums []int) []int {
  2. res := make([]int, 2)
  3. for i := range nums {
  4. v := abs(nums[i])
  5. res[1] += v
  6. if nums[v-1] < 0 {
  7. res[0] = v
  8. }
  9. nums[v-1] *= -1
  10. }
  11. n := len(nums)
  12. res[1] = (1+n)*n/2 - res[1] + res[0]
  13. return res
  14. }
  15. func abs(x int) int {
  16. if x < 0 {
  17. return -x
  18. }
  19. return x
  20. }