add new solutions
This commit is contained in:
parent
886b5e0a8e
commit
67cad91898
47 changed files with 1549 additions and 1 deletions
16
solutions/18/q1877/solution.go
Normal file
16
solutions/18/q1877/solution.go
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
package q1877
|
||||
|
||||
import "slices"
|
||||
|
||||
func minPairSum(nums []int) int {
|
||||
slices.Sort(nums)
|
||||
n := len(nums)
|
||||
|
||||
maxSum := 0
|
||||
for i := range n / 2 {
|
||||
maxSum = max(maxSum, nums[i]+nums[n-1-i])
|
||||
}
|
||||
return maxSum
|
||||
}
|
||||
|
||||
var _ = minPairSum
|
||||
59
solutions/18/q1895/solution.go
Normal file
59
solutions/18/q1895/solution.go
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
package q1895
|
||||
|
||||
func isMagicSq(grid [][]int, x, y, w int) bool {
|
||||
diag1Sum := 0
|
||||
diag2Sum := 0
|
||||
for i := range w {
|
||||
ax, ay := x+i, y+i
|
||||
diag1Sum += grid[ay][ax]
|
||||
ax = x + w - 1 - i
|
||||
diag2Sum += grid[ay][ax]
|
||||
}
|
||||
if diag1Sum != diag2Sum {
|
||||
return false
|
||||
}
|
||||
|
||||
// horizontal
|
||||
for dy := range w {
|
||||
sum := 0
|
||||
for dx := range w {
|
||||
sum += grid[y+dy][x+dx]
|
||||
}
|
||||
if sum != diag1Sum {
|
||||
return false
|
||||
}
|
||||
}
|
||||
// vertical
|
||||
for dx := range w {
|
||||
sum := 0
|
||||
for dy := range w {
|
||||
sum += grid[y+dy][x+dx]
|
||||
}
|
||||
if sum != diag1Sum {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func largestMagicSquare(grid [][]int) int {
|
||||
k := 1
|
||||
gW, gH := len(grid[0]), len(grid)
|
||||
|
||||
Outer:
|
||||
for w := 2; w <= min(gW, gH); w++ {
|
||||
for y := range gH - w + 1 {
|
||||
for x := range gW - w + 1 {
|
||||
if isMagicSq(grid, x, y, w) {
|
||||
k = w
|
||||
continue Outer
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return k
|
||||
}
|
||||
|
||||
var _ = largestMagicSquare
|
||||
Loading…
Add table
Add a link
Reference in a new issue