Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "math/rand"
- "sort"
- "time"
- )
- const rowLim = 1000000000
- func main() {
- var startTime = time.Now() //Benchmark
- var groups [rowLim]int
- var res [rowLim]int
- //Fill the dataset with random values
- for i := 0; i < rowLim; i++ {
- groups[i] = rand.Intn(3)
- res[i] = rand.Intn(3)
- }
- //Sort groups together
- sort.Ints(groups[:])
- //Pre-Loop
- var lastResult = -1
- var lastGroup = -1
- var currentCount = 0
- var triples = 0
- //Logic
- for x := 0; x < len(groups); x++ {
- if res[x] == lastResult && groups[x] == lastGroup {
- currentCount++
- if currentCount >= 3 {
- triples++
- }
- } else {
- currentCount = 1
- }
- lastResult = res[x]
- lastGroup = groups[x]
- }
- //Output
- fmt.Println("Sets of Triples:", triples)
- fmt.Println("Took:", time.Since(startTime))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement