Skip to content

Commit 981e162

Browse files
authored
Merge pull request #348 from sir-gon/develop
[REFACTOR] [Hacker Rank] Interview Preparation Kit: Greedy Algorithms…
2 parents 9d38844 + 09e012f commit 981e162

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

exercises/hackerrank/interview_preparation_kit/greedy_algorithms/minimum_absolute_difference_in_an_array.go

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,38 @@
55

66
package hackerrank
77

8-
import "slices"
8+
import (
9+
"slices"
10+
)
911

1012
func minimumAbsoluteDifference(arr []int32) int32 {
1113
// Sort the array
12-
arrCopy := make([]int32, len(arr))
14+
sortedNums := make([]int32, len(arr))
1315

14-
copy(arrCopy, arr)
15-
slices.Sort(arrCopy)
16+
copy(sortedNums, arr)
17+
slices.Sort(sortedNums)
1618

1719
// Find the minimum absolute difference
1820
result := int32(0)
19-
for i := range len(arrCopy) - 1 {
20-
diff := arrCopy[i+1] - arrCopy[i]
21-
if diff < result || result == 0 {
21+
var resultEmpty = true
22+
23+
for i := range len(sortedNums) - 1 {
24+
var aValue = sortedNums[i]
25+
var bValue = sortedNums[i+1]
26+
27+
diff := aValue - bValue
28+
if diff < 0 {
29+
diff = -1 * diff
30+
}
31+
32+
if resultEmpty {
2233
result = diff
34+
resultEmpty = false
35+
} else {
36+
result = min(result, diff)
2337
}
2438
}
39+
2540
return result
2641
}
2742

0 commit comments

Comments
 (0)