Leetcode面试经典150题-221.最大正方形
解法都在代码里,不懂就留言或者私信
class Solution {/**本题一看就是典型的动态规划,要找以每个点为右下角的正方形的面积,然后取最大的这个题要注意找规律,我找到的规律如下:1.以第一行为右下角的,因为正方形是边长相同的,所以第一行为右下角最大正方形只能是自己,自己是1就是1,不是1就是02. 以第一列为右下角的也是一样。3. 以普通位置为右下角的最大正方形,首先看自己是不是1,如果自己不是1,那就肯定是0,如果自己是1,取它的左上、左、上三个点的最小面积,加1就是它的解自己可以多画几个二维矩阵找找规律*/public int maximalSquare(char[][] matrix) {/**空矩阵的校验,健壮性校验 */if(matrix == null || matrix.length == 0 || matrix[0].length == 0) {return 0;}/**如果矩阵只有一个数字,那就是0最大面积就是0,是'1'最大面积就是1*/if(matrix.length == 1 && matrix[0].length == 1) {return matrix[0][0] == '1'? 1 : 0;}/**其他的不过多枚举了,直接动态规划解吧,dp[i][j]代表以(i,j)为右下角的最大正方形的边长*/int[][] dp = new int[matrix.length][matrix[0].length];/**定义最大值变量 */int maxArea = 0;/**初始化第一行和第一列*/for(int j = 0; j < dp[0].length; j++) {dp[0][j] = matrix[0][j] == '1'? 1 : 0;/**这里其实是dp[0][j]* dp[0][j],反正最大就是1,懒得写了 */maxArea = Math.max(maxArea, dp[0][j]);}for(int i = 1; i < dp.length; i++) {dp[i][0] = matrix[i][0] == '1'? 1 : 0;/**这里其实是dp[i][0]* dp[i][0],反正最大就是1,懒得写了 */maxArea = Math.max(maxArea, dp[i][0]);}/**初始化普通位置 */for(int i = 1; i < dp.length; i++) {for(int j = 1; j < dp[i].length; j++) {if(matrix[i][j] == '1') {dp[i][j] = matrix[i][j] == '1'? Math.min(dp[i-1][j-1], Math.min(dp[i-1][j], dp[i][j-1])) + 1 : 0;maxArea = Math.max(maxArea, dp[i][j]*dp[i][j]);}}}return maxArea;}
}
相信我这就是最优解,矩阵就是m*n,你不过完能知道答案吗

相关文章:
Leetcode面试经典150题-221.最大正方形
解法都在代码里,不懂就留言或者私信 class Solution {/**本题一看就是典型的动态规划,要找以每个点为右下角的正方形的面积,然后取最大的这个题要注意找规律,我找到的规律如下:1.以第一行为右下角的,因为正…...
51单片机-DS1302,操作简述
DS1302的命令字(Command Byte)是由控制DS1302芯片的主机(通常是单片机,如51单片机)来生成和发送的。DS1302是一款实时时钟(RTC)芯片,它通过串行通讯接口与单片机进行数据交换。 DS1…...
Vue3+Vite+Echarts 出现Missing semicolon错误
使用的echarts代码如下: import * as echarts from echarts;type EChartsOption echarts.EChartsOption;var chartDom document.getElementById(main)!; var myChart echarts.init(chartDom); var option: EChartsOption;option {series: [{type: gauge,center: [50%, 6…...
iOS——frame和bounds的区别
把frame理解为占用区域,把bounds理解为边界。View在旋转过程中,其实自己的坐标系统并没有发生改变,bounds中的origin只能通过setBounds方法修改。 frame 定义了视图在其父视图坐标系统中的位置和大小。其坐标系是相对于俯视图的坐标系。 bou…...
Trm理论 3(注意力机制)
注意力机制(attention) 在使用LSTM,CNN等模型的时候,很难决定对于一个信息什么是重要的,什么是不重要的。因此注意力机制就是为了优化这一问题 怎么做注意力机制 注意力机制包含,查询对象(Q&…...
Vue2和Vue3项目创建的区别和 element ui 和element plus的导入方式
文章目录 创建项目Vue2Vue3 Vue2项目机构Vue 2 Element UI VUE3项目结构Vue 3 Element Plus 创建项目 Vue2 Vue CLI 3 及之前版本: 使用 vue-cli 创建项目: npm install -g vue/cli vue create my-project-vue2 cd my-project-vue2Vue3 Vue CLI 4…...
基于STM32的猫狗宠物喂养系统设计(微信小程序)(215)
文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】设计实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】ESP8266工作模式配置1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要【5】选题背景【6】国内外技术发展现状【7】研究的目…...
spark读取csv文件
测试spark读取本地和hdfs文件 from pyspark.sql import SparkSessionspark SparkSession.builder \.appName("Example PySpark Script") \.getOrCreate()# 读取本地csv文件 df spark.read.csv("/Users/xiaokkk/Desktop/local_projects/spark/intents.csv&quo…...
钢铁百科:Q420DR力学性能、Q420DR执行标准、Q420DR低温容器钢板
Q420DR钢板是一种专为低温压力容器设计的优质钢材,其材质特性、执行标准、化学成分、力学性能、交货状态、应用范围以及常用规格等方面都具有显著的特点。 一、Q420DR钢板材质 Q420DR钢板的命名方式体现了其材质特性。其中,“Q”代表屈服强度ÿ…...
三菱机器人手柄维修示教器维修手操器面板等
机器人手柄维修(示教器维修)故障现象包括:黑屏、指示灯无任何显示, 上电蓝屏、白屏,通电几分钟后屏幕变为蓝屏,主板故障,通讯时有时无, 触摸失灵,有时白屏,触…...
中间件的学习理解总结
目录 一、定义与作用 二、主要类型 数据库中间件 远程过程调用中间件 面向消息的中间件 事务处理中间件 三、特点与优势 独立性 高效性 可扩展性 可靠性 四、应用场景 企业应用集成 分布式系统 电子商务 移动应用开发 五、数据库中间件 功能细节:…...
编程秘密武器:提升工作效率的关键工具
在编程的世界里,选择合适的工具可以极大地提升工作效率。无论是智能的代码编辑器、强大的版本控制工具,还是自动化脚本,这些“秘密武器”都能帮助开发者在繁忙的工作环境中事半功倍。本文将探讨一些能显著提升工作效率的编程工具,…...
Git+word记笔记
程序员记笔记主要同步很重要,我这个方法只支持个人笔记,如果团队还是用企业微信开个企业会员比较方便。为什么用word,因为可以镶嵌代码和文档,不仅仅是文字,兼容性强 语雀,云笔记这些对于上传的word都是有…...
java-antrl手敲命令的hello world
java-antrl手敲命令的hello world 环境步骤1. 下载ANTLR的jar包2. 新建一个g4文件3. 生成语法对应的java文件4. 编译语法对应的java文件5. 测试语法5.1 打印测试信息5.2 查看语法分析树 6. 注意事项6.1 每一个antlr4版本的jar包都对应java的相应版本,要对应。6.2 [1…...
法规探讨 | 《医疗器械管理法(草案征求意见稿)》初探(1)
昨日,国家药监局综合司正式公开征求《中华人民共和国医疗器械管理法(草案征求意见稿)》的意见,标志着我国医疗器械管理领域即将进入新的发展阶段。相较于现行的《医疗器械监督管理条例》,《医疗器械法》不仅沿袭了《条…...
大语言模型的上下文窗口(Context Windows):对人工智能应用的影响
大语言模型(LLMs)极大地提升了人工智能在理解和生成类人文本方面的能力。其中一个影响其效用的基本方面是它们的 “上下文窗口”—— 这个概念直接影响着这些模型接收和生成语言的有效性。我将深入探讨上下文窗口是什么、它们对人工智能应用的影响以及组…...
Java【数组】
数组是一组类型相同的数据(基本类型或引用类型)的集合,数组中每个数据称为元素。数组也是Java的对象,一旦创建,数组长度就固定了。 创建数组 1.声明一个数组类型的引用变量(数组变量)ÿ…...
xAI巨无霸超级计算机上线:10万张H100 GPU,计划翻倍至20万张
在短短四个多月的时间里,埃隆马斯克的X公司(前身为Twitter)推出了世界上最强劲的人工智能训练系统。名为Colossus的超级计算机使用了多达10万张NVIDIA H100 GPU进行训练,并计划在未来几个月内再增加5万张H100和H200 GPU。 “本周末…...
python集合
1. 请解释Python中的集合(set)是什么? Python中的集合(set)是一个无序的、不重复的元素序列。它的主要用途是进行成员关系测试和消除重复元素。集合对象还支持数学运算,如并集、交集、差集和对称差分。 以…...
算法打卡 Day29(回溯算法)-复原 IP 地址 + 子集 + 子集 Ⅱ
文章目录 Leetcode 93-复原 IP 地址题目描述解题思路 Leetcode 78-子集题目描述解题思路 Leetcode 90-子集 Ⅱ题目描述解题思路 Leetcode 93-复原 IP 地址 题目描述 https://leetcode.cn/problems/restore-ip-addresses/description/ 解题思路 这是一道切割问题,…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
