add new solutions
This commit is contained in:
parent
62ed89abcc
commit
ed8cd12d25
2 changed files with 89 additions and 0 deletions
26
solutions/q209/solution.go
Normal file
26
solutions/q209/solution.go
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
package q209
|
||||
|
||||
import "math"
|
||||
|
||||
func minSubArrayLen(target int, nums []int) int {
|
||||
minLen := math.MaxInt
|
||||
|
||||
l, sum := 0, 0
|
||||
for r := range nums {
|
||||
sum += nums[r]
|
||||
for l < r && sum-nums[l] >= target {
|
||||
sum -= nums[l]
|
||||
l++
|
||||
}
|
||||
if sum >= target {
|
||||
minLen = min(minLen, r-l+1)
|
||||
}
|
||||
}
|
||||
|
||||
if minLen == math.MaxInt {
|
||||
return 0
|
||||
}
|
||||
return minLen
|
||||
}
|
||||
|
||||
var _ = minSubArrayLen
|
||||
63
solutions/q36/solution.go
Normal file
63
solutions/q36/solution.go
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
package q36
|
||||
|
||||
func validateCol(board [][]byte, col int) bool {
|
||||
var present [10]bool
|
||||
for i := range 9 {
|
||||
c := board[i][col]
|
||||
if c != '.' {
|
||||
if present[c-'0'] {
|
||||
return false
|
||||
}
|
||||
present[c-'0'] = true
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func validateRow(board [][]byte, row int) bool {
|
||||
var present [10]bool
|
||||
for i := range 9 {
|
||||
c := board[row][i]
|
||||
if c != '.' {
|
||||
if present[c-'0'] {
|
||||
return false
|
||||
}
|
||||
present[c-'0'] = true
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func validateBox(board [][]byte, box int) bool {
|
||||
xOffset := (box % 3) * 3
|
||||
yOffset := (box / 3) * 3
|
||||
|
||||
var present [10]bool
|
||||
for i := range 9 {
|
||||
x := xOffset + i%3
|
||||
y := yOffset + i/3
|
||||
c := board[y][x]
|
||||
if c != '.' {
|
||||
if present[c-'0'] {
|
||||
return false
|
||||
}
|
||||
present[c-'0'] = true
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func validate(board [][]byte) bool {
|
||||
for i := range 9 {
|
||||
if !validateCol(board, i) || !validateRow(board, i) || !validateBox(board, i) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func isValidSudoku(board [][]byte) bool {
|
||||
return validate(board)
|
||||
}
|
||||
|
||||
var _ = isValidSudoku
|
||||
Loading…
Add table
Add a link
Reference in a new issue