golang力扣leetcode 221.最大正方形

简介: golang力扣leetcode 221.最大正方形

221.最大正方形

221.最大正方形

题解

题目:求数组中的最大正方形的面积

思路:动态规划

state: dp[i][j]:以i,j为右下角的正方形的最大边长
function: dp[i][j] = min(dp[i-1][j], dp[i-1][j-1], dp[i][j-1]) + 1
intialize: 
answer: 

代码

func maximalSquare(matrix [][]byte) int {
  n, m := len(matrix), len(matrix[0])
  dp := make([][]int, n+1)
  for i := range dp {
    dp[i] = make([]int, m+1)
  }
  ans := 0
  for i := 1; i <= n; i++ {
    for j := 1; j <= m; j++ {
      cnt := matrix[i-1][j-1]
      if cnt == '1' {
        dp[i][j] = min(dp[i-1][j], dp[i-1][j-1], dp[i][j-1]) + 1
      } else {
        dp[i][j] = 0
      }
      ans = max(ans, dp[i][j])
    }
  }
  return ans * ans
}
func max(i, j int) int {
  if i > j {
    return i
  }
  return j
}
func min(i, j, k int) int {
  return min1(min1(i, j), k)
}
func min1(i, j int) int {
  if i > j {
    return j
  }
  return i
}
目录
相关文章
|
6天前
|
存储
leetcode2975. 移除栅栏得到的正方形田地的最大面积
leetcode2975. 移除栅栏得到的正方形田地的最大面积
22 1
|
6天前
|
Java
【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)
【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)
13 1
|
6天前
|
存储 算法
【LeetCode力扣】单调栈解决Next Greater Number(下一个更大值)问题
【LeetCode力扣】单调栈解决Next Greater Number(下一个更大值)问题
6 0
|
6天前
|
Go 容器 SQL
【Golang Leetcode】总目录(Day1~100)
【Golang Leetcode】总目录(Day1~100)
477 1
【Golang Leetcode】总目录(Day1~100)
|
6天前
|
Go Java C++
Java每日一练(20230407) 数据流变为多个不相交区间、最小栈、柱状图中最大的矩形
Java每日一练(20230407) 数据流变为多个不相交区间、最小栈、柱状图中最大的矩形
40 0
Java每日一练(20230407) 数据流变为多个不相交区间、最小栈、柱状图中最大的矩形
|
6天前
leetcode-221:最大正方形
leetcode-221:最大正方形
30 0
|
6天前
leetcode-593:有效的正方形
leetcode-593:有效的正方形
19 0
|
6天前
|
Go
golang力扣leetcode 494.目标和
golang力扣leetcode 494.目标和
32 0
|
6天前
|
Go
golang力扣leetcode 剑指Offer II 114. 外星文字典
golang力扣leetcode 剑指Offer II 114. 外星文字典
24 0
|
6天前
|
监控 算法 Go
Golang深入浅出之-Go语言中的服务熔断、降级与限流策略
【5月更文挑战第4天】本文探讨了分布式系统中保障稳定性的重要策略:服务熔断、降级和限流。服务熔断通过快速失败和暂停故障服务调用来保护系统;服务降级在压力大时提供有限功能以保持整体可用性;限流控制访问频率,防止过载。文中列举了常见问题、解决方案,并提供了Go语言实现示例。合理应用这些策略能增强系统韧性和可用性。
56 0