Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func hourglassSum(arr [][]int32) int32 {
for j := int32(matrixStartIndex); j <= int32(matrixEndIndex); j++ {
var currentHourglassSum int32 = 0
currentHourglass := getHourGlass(arr, i, j)
for k := 0; k < len(currentHourglass); k++ {
for k := range currentHourglass {
currentHourglassSum += currentHourglass[k]
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@ func rotLeftOne(a []int32) []int32 {

func rotLeft(a []int32, d int32) []int32 {
x := a[:]
var i int32

for i = 0; i < d; i++ {
for range d {
x = rotLeftOne(x)
}
return x
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ package hackerrank
func countTripletsBruteForce(arr []int64, r int64) int64 {
size := len(arr)
counter := int64(0)
for i := 0; i < size-2; i++ {
for i := range size - 2 {
for j := i + 1; j < size-1; j++ {
for k := j + 1; k < size; k++ {
if r*arr[i] == arr[j] && r*arr[j] == arr[k] {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ func sherlockAndAnagrams(s string) int32 {
candidates := make(map[string][]string)
size := len(s)

for i := 0; i < size; i++ {
for j := 0; j < size-i; j++ {
for i := range size {
for j := range size - i {
substr := s[i : size-j]

log.Debug("i: %d, size: %d, size - j: %d | substr: %s",
Expand Down
2 changes: 1 addition & 1 deletion exercises/hackerrank/warmup/aVeryBigSum.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import "gon.cl/algorithms/utils/log"
func AVeryBigSum(ar []uint64) uint64 {
var result uint64 = 0

for i := 0; i < len(ar); i++ {
for i := range ar {
result += ar[i]
}

Expand Down
2 changes: 1 addition & 1 deletion exercises/hackerrank/warmup/compareTriplets.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func CompareTriplets(a []int, b []int) ([]int, error) {

var awards = []int{0, 0}

for i := 0; i < len(a); i++ {
for i := range a {
if a[i] > b[i] {
awards[0] = awards[0] + 1
}
Expand Down
4 changes: 2 additions & 2 deletions exercises/hackerrank/warmup/diagonalDifference.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ func DiagonalDifference(arr [][]int) int {
diag2 := 0
last := len(arr) - 1

for i := 0; i < len(arr); i++ {
for j := 0; j < len(arr); j++ {
for i := range arr {
for j := range arr {
if i == j {
diag1 += arr[i][j]
diag2 += arr[last-i][j]
Expand Down
18 changes: 9 additions & 9 deletions exercises/hackerrank/warmup/miniMaxSum.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* @link Problem definition [[docs/hackerrank/warmup/miniMaxSum.md]]
* @link Problem definition [[docs/hackerrank/warmup/minimumiMaxSum.md]]
*/

package hackerrank
Expand All @@ -15,21 +15,21 @@ func MiniMaxSum(arr []int) (string, error) {
}

sum := 0
min := arr[0]
max := arr[1]
minimum := arr[0]
maximum := arr[1]

for i := 0; i < len(arr); i++ {
for i := range arr {
num := arr[i]
sum += num

if num < min {
min = num
if num < minimum {
minimum = num
}

if num > max {
max = num
if num > maximum {
maximum = num
}
}

return fmt.Sprintf("%d %d", sum-max, sum-min), nil
return fmt.Sprintf("%d %d", sum-maximum, sum-minimum), nil
}
2 changes: 1 addition & 1 deletion exercises/hackerrank/warmup/simpleArraySum.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import "gon.cl/algorithms/utils/log"
func SimpleArraySum(arr []int) int {
acum := 0

for i := 0; i < len(arr); i++ {
for i := range arr {
acum += arr[i]
}

Expand Down
4 changes: 2 additions & 2 deletions exercises/projecteuler/helpers/divisors.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package helpers

import (
"math"
"sort"
"slices"

"gon.cl/algorithms/utils/log"
)
Expand Down Expand Up @@ -53,7 +53,7 @@ func Divisors(target int) []int {
log.Debug("collected divisors %x", divs)

// sort divisors
sort.Slice(divs, func(i, j int) bool { return divs[i] < divs[j] })
slices.Sort(divs)
log.Debug("sorted divisors %x", divs)

return divs
Expand Down
4 changes: 2 additions & 2 deletions exercises/projecteuler/helpers/matrix.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package helpers
func Matrix(m int, n int, init int) [][]int {
var matrix [][]int

for i := 0; i < m; i++ {
for range m {
row := []int{}
for j := 0; j < n; j++ {
for range n {
row = append(row, init)
}
matrix = append(matrix, row)
Expand Down
2 changes: 1 addition & 1 deletion exercises/projecteuler/helpers/sum.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ func Sum(listOfNums []int) int {

var sum int

for i := 0; i < len(listOfNums); i++ {
for i := range listOfNums {
sum += listOfNums[i]
}

Expand Down
2 changes: 1 addition & 1 deletion exercises/projecteuler/problem0001.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
func Problem0001(top int) int {
total := 0

for i := 0; i < top; i++ {
for i := range top {
if i%3 == 0 || i%5 == 0 {

total += i
Expand Down
2 changes: 1 addition & 1 deletion exercises/projecteuler/problem0008.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func Problem0008(numberInput string) int {
for i := bottom; i <= top-interval; i += 1 {
var digitsSet []int

for j := 0; j < interval; j++ {
for j := range interval {
digitsSet = append(digitsSet, int(digitsSlice[i+j]))
}

Expand Down
2 changes: 1 addition & 1 deletion exercises/projecteuler/problem0022.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ func Problem0022(listOfNames []string) int {

sort.Strings(listOfNames)

for i := 0; i < len(listOfNames); i++ {
for i := range listOfNames {
answer += (i + 1) * helpers.WordScore(listOfNames[i])
}

Expand Down
16 changes: 4 additions & 12 deletions exercises/projecteuler/problem0023.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,12 @@
package projecteuler

import (
"golang.org/x/exp/slices"
slices "slices"

"gon.cl/algorithms/exercises/projecteuler/helpers"
"gon.cl/algorithms/utils/log"
)

func Contains[T comparable](s []T, e T) bool {
for _, v := range s {
if v == e {
return true
}
}
return false
}

func Problem0023(underLimit int, superLimit int) int {

var abundantNumberList = []int{}
Expand All @@ -38,7 +30,7 @@ func Problem0023(underLimit int, superLimit int) int {
var sumsAbundantNums = []int{}

// Produce a list of sums of pair of abundant numbers below limit
for i := 0; i < len(abundantNumberList); i++ {
for i := range abundantNumberList {
for j := 0; abundantNumberList[i]+abundantNumberList[j] <= superLimit &&
j < len(abundantNumberList); j++ {

Expand All @@ -62,7 +54,7 @@ func Problem0023(underLimit int, superLimit int) int {
var found = []int{}

for i := 1; i < superLimit; i++ {
if !Contains(sumsAbundantNums, i) {
if !slices.Contains(sumsAbundantNums, i) {
found = append(found, i)
}
}
Expand Down
1 change: 0 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ go 1.22.0
require (
github.com/stretchr/testify v1.10.0
go.uber.org/zap v1.27.0
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac
)

require (
Expand Down
28 changes: 14 additions & 14 deletions utils/log/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,43 +102,43 @@ func (logger *Log) WithError(err error) *Log {
return logCustom
}

func WithField(key string, value interface{}) *Log { return instance.WithField(key, value) }
func (logger *Log) WithField(key string, value interface{}) *Log {
func WithField(key string, value any) *Log { return instance.WithField(key, value) }
func (logger *Log) WithField(key string, value any) *Log {
logCustom := &Log{
log: initLoggerZap(),
}
logCustom.log = logCustom.log.With(zap.Any(key, value))
return logCustom
}

func Info(message string, args ...interface{}) { instance.Info(message, args...) }
func (logger *Log) Info(message string, args ...interface{}) {
func Info(message string, args ...any) { instance.Info(message, args...) }
func (logger *Log) Info(message string, args ...any) {
logger.log.Info(fmt.Sprintf(message, args...))
}

func Error(message string, args ...interface{}) { instance.Error(message, args...) }
func (logger *Log) Error(message string, args ...interface{}) {
func Error(message string, args ...any) { instance.Error(message, args...) }
func (logger *Log) Error(message string, args ...any) {
logger.log.Error(fmt.Sprintf(message, args...))
}

func Debug(message string, args ...interface{}) { instance.Debug(message, args...) }
func (logger *Log) Debug(message string, args ...interface{}) {
func Debug(message string, args ...any) { instance.Debug(message, args...) }
func (logger *Log) Debug(message string, args ...any) {
logger.log.Debug(fmt.Sprintf(message, args...))
}

func Warn(message string, args ...interface{}) { instance.Warn(message, args...) }
func (logger *Log) Warn(message string, args ...interface{}) {
func Warn(message string, args ...any) { instance.Warn(message, args...) }
func (logger *Log) Warn(message string, args ...any) {
logger.log.Warn(fmt.Sprintf(message, args...))
}

func Fatal(message string, args ...interface{}) { instance.Fatal(message, args...) }
func (logger *Log) Fatal(message string, args ...interface{}) {
func Fatal(message string, args ...any) { instance.Fatal(message, args...) }
func (logger *Log) Fatal(message string, args ...any) {
logger.log.Fatal(fmt.Sprintf(message, args...))
}

func Printf(message string, args ...interface{}) {
func Printf(message string, args ...any) {
instance.Printf(message, args...)
}
func (logger *Log) Printf(message string, args ...interface{}) {
func (logger *Log) Printf(message string, args ...any) {
logger.log.Info(fmt.Sprintf(message, args...))
}