Skip to content

Commit a016a65

Browse files
authored
Basic implementation to avoid importing math for abs and absDiff (#147)
1 parent 7c3fb65 commit a016a65

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

array/add_two_numbers.go

+8-4
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@ func AddTwoNumbers(num1, num2 []int) []int {
2222
}
2323

2424
func equalizeLengths(num1, num2 []int) ([]int, []int) {
25-
diff := len(num2) - len(num1)
26-
if diff < 0 {
27-
diff = diff * -1
28-
}
25+
diff := absDiff(len(num1), len(num2))
2926
zeros := make([]int, diff)
3027
if len(num2) > len(num1) {
3128
num1 = append(zeros, num1...)
@@ -34,3 +31,10 @@ func equalizeLengths(num1, num2 []int) ([]int, []int) {
3431
}
3532
return num1, num2
3633
}
34+
35+
func absDiff(a, b int) int {
36+
if a > b {
37+
return a - b
38+
}
39+
return b - a
40+
}

array/find_duplicate_in_array.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
package array
22

3-
import "math"
4-
53
// FindDuplicate solves the problem in O(n) time and O(1) space.
64
func FindDuplicate(list []int) int {
75
for _, item := range list {
8-
itemIndex := int(math.Abs(float64(item))) - 1
6+
itemIndex := abs(item) - 1
97
if list[itemIndex] < 0 {
108
return item
119
}
1210
list[itemIndex] *= -1
1311
}
1412
return -1
1513
}
14+
15+
func abs(a int) int {
16+
if a < 0 {
17+
return -1 * a
18+
}
19+
return a
20+
}

0 commit comments

Comments
 (0)