diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index fd61e730..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: 2 -jobs: - build-go1.16: - docker: - - image: circleci/golang:1.16 - working_directory: /go/src/github.com/TTWShell/algorithms - steps: - - checkout - - run: go mod vendor - - run: - name: Run unit tests - command: | - go version - go test -race -coverprofile=coverage.txt -covermode=atomic ./... - bash <(curl -s https://codecov.io/bash) - -workflows: - version: 2 - build: - jobs: - - build-go1.16 diff --git a/go.mod b/go.mod index 694299b9..49424548 100644 --- a/go.mod +++ b/go.mod @@ -1,5 +1,11 @@ module github.com/TTWShell/algorithms -go 1.16 +go 1.19 require github.com/stretchr/testify v1.7.0 + +require ( + github.com/davecgh/go-spew v1.1.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect +) diff --git a/leetcode/array/increasingTriplet.go b/leetcode/array/increasingTriplet.go index 1689d325..684d9d1c 100644 --- a/leetcode/array/increasingTriplet.go +++ b/leetcode/array/increasingTriplet.go @@ -20,26 +20,26 @@ Example 2: package larray -func increasingTriplet(nums []int) bool { - left, right := -1, 0 - for i := 1; i < len(nums); i++ { - if nums[i-1] >= nums[i] { - continue - } +import "math" - if left < 0 { - left, right = i-1, i - continue - } +func increasingTriplet(nums []int) bool { + if len(nums) < 3 { + return false + } - if nums[i-1] < nums[right] && nums[left] < nums[i-1] { // update right only - right = i - 1 + min := nums[0] + minMid := math.MaxInt32 + for i := 1; i < len(nums); i++ { + if nums[i] > minMid { + return true } - if nums[i] < nums[right] { // need update all - left, right = i-1, i + if min > nums[i-1] { + min = nums[i-1] } - if left >= 0 && nums[left] < nums[right] && nums[right] < nums[i] { - return true + if nums[i] > min { + if nums[i] < minMid { + minMid = nums[i] + } } } return false diff --git a/leetcode/array/increasingTriplet_test.go b/leetcode/array/increasingTriplet_test.go index 731118ad..2bded2cd 100644 --- a/leetcode/array/increasingTriplet_test.go +++ b/leetcode/array/increasingTriplet_test.go @@ -17,4 +17,6 @@ func Test_increasingTriplet(t *testing.T) { assert.False(increasingTriplet([]int{2, 1, 5, 0, 3})) assert.True(increasingTriplet([]int{2, 1, 5, 0, 4, 6})) assert.True(increasingTriplet([]int{1, 2, -10, -8, -7})) + assert.True(increasingTriplet([]int{0, 4, 1, -1, 2})) + assert.True(increasingTriplet([]int{20, 100, 10, 12, 5, 13})) }