LeetCode 每日一题 2025/8/25-2025/8/31

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • 8/25 498. 对角线遍历
      • 8/26 3000. 对角线最长的矩形的面积
      • 8/27 3459. 最长 V 形对角线段的长度
      • 8/28 3446. 按对角线进行矩阵排序
      • 8/29 3021. Alice 和 Bob 玩鲜花游戏
      • 8/30 36. 有效的数独
      • 8/31 37. 解数独


8/25 498. 对角线遍历

对角线有两种走法
一种斜向上stepx=-1,stepy=1
一种斜向下stepx=1,stepy=-1
更新当前位置x,y
如果x,y在矩阵内 则不需要改变行进方向
如果走出矩阵 则根据x,y位置进行对应更新
特殊判断左下 右上角落情况

def findDiagonalOrder(mat):""":type mat: List[List[int]]:rtype: List[int]"""m,n = len(mat),len(mat[0])ans = []x,y = 0,0sx,sy = -1,1for _ in range(m*n):ans.append(mat[x][y])curx,cury = x+sx,y+sychange = Trueif 0<=curx<m and 0<=cury<n:x = curxy = curychange = Falseelif 0<=curx<m:x +=1elif 0<=cury<n:y +=1else:if curx>0:y +=1if cury>0:x +=1if change:sx = -sxsy = -syreturn ans

8/26 3000. 对角线最长的矩形的面积

依次遍历

def areaOfMaxDiagonal(dimensions):""":type dimensions: List[List[int]]:rtype: int"""cur=0ans=0for x,y in dimensions:if x*x+y*y>=cur:if x*x+y*y==cur:ans=max(ans,x*y)else:ans=x*yreturn ans

8/27 3459. 最长 V 形对角线段的长度

记忆化搜索

def lenOfVDiagonal(grid):""":type grid: List[List[int]]:rtype: int"""steps=[(1,1),(1,-1),(-1,-1),(-1,1)]m,n=len(grid),len(grid[0])mem={}def dfs(x,y,d,turn,target):if (x,y,d,turn,target) in mem:return mem[(x,y,d,turn,target)]nx,ny=x+steps[d][0],y+steps[d][1]if nx<0 or ny<0 or nx>=m or ny>=n or grid[nx][ny]!=target:return 0maxstep = dfs(nx,ny,d,turn,2-target)if turn:maxstep = max(maxstep,dfs(nx,ny,(d+1)%4,False,2-target))mem[(x,y,d,turn,target)]=maxstep+1return maxstep+1ans=0for i in range(m):for j in range(n):if grid[i][j]==1:for d in range(4):ans=max(ans,dfs(i,j,d,True,2)+1)return ans

8/28 3446. 按对角线进行矩阵排序

获得每条对角线数值 排序

def sortMatrix(grid):""":type grid: List[List[int]]:rtype: List[List[int]]"""n=len(grid)for i in range(n):tmp=[grid[i+j][j] for j in range(n-i)]tmp.sort(reverse=True)for j in range(n-i):grid[i+j][j]=tmp[j]for j in range(1,n):tmp=[grid[i][j+i] for i in range(n-j)]tmp.sort()for i in range(n-j):grid[i][j+i]=tmp[i]return grid

8/29 3021. Alice 和 Bob 玩鲜花游戏

要摘完所有花 所以为了A赢 必须x+y为奇数

def flowerGame(n, m):""":type n: int:type m: int:rtype: int"""return m*n//2

8/30 36. 有效的数独

遍历横竖
每一个小格子

def isValidSudoku(board):""":type board: List[List[str]]:rtype: bool"""from collections import defaultdictfor i in range(9):heng,shu =defaultdict(int),defaultdict(int)for j in range(9):if heng[board[i][j]]>0:return Falseif shu[board[j][i]]>0:return Falseif board[i][j]!=".":heng[board[i][j]] = 1if board[j][i]!=".":shu[board[j][i]] = 1m = defaultdict(int)for i in range(3):for j in range(3):if m[board[i][j]]>0:return Falseif board[i][j]!=".":m[board[i][j]]=1m = defaultdict(int)for i in range(3):for j in range(3,6):print(board)if m[board[i][j]]>0:return Falseif board[i][j]!=".":m[board[i][j]]=1 m = defaultdict(int)for i in range(3):for j in range(6,9):if m[board[i][j]]>0:return Falseif board[i][j]!=".":m[board[i][j]]=1m = defaultdict(int)for i in range(3,6):for j in range(3):if m[board[i][j]]>0:return Falseif board[i][j]!=".":m[board[i][j]]=1m = defaultdict(int)for i in range(3,6):for j in range(3,6):if m[board[i][j]]>0:return Falseif board[i][j]!=".":m[board[i][j]]=1 m = defaultdict(int)for i in range(3,6):for j in range(6,9):if m[board[i][j]]>0:return Falseif board[i][j]!=".":m[board[i][j]]=1m = defaultdict(int)for i in range(6,9):for j in range(3):if m[board[i][j]]>0:return Falseif board[i][j]!=".":m[board[i][j]]=1m = defaultdict(int)for i in range(6,9):for j in range(3,6):if m[board[i][j]]>0:return Falseif board[i][j]!=".":m[board[i][j]]=1 m = defaultdict(int)for i in range(6,9):for j in range(6,9):if m[board[i][j]]>0:return Falseif board[i][j]!=".":m[board[i][j]]=1return True

8/31 37. 解数独

rowset[i]维护第i行填入的数字
colset[j]维护第j行数字
boxset[i][j]维护i,j宫内数字
hp维护所有空位置 可以填的数字个数 从最少的可能数位置开始

def solveSudoku(board):""":type board: List[List[str]]:rtype: None Do not return anything, modify board in-place instead."""import heapqrowset=[set() for _ in range(9)]colset=[set() for _ in range(9)]boxset=[[set() for _ in range(3)]for _ in range(3)]eptpos=[]for i,row in enumerate(board):for j,b in enumerate(row):if b=='.':eptpos.append((i,j))else:x=int(b)rowset[i].add(x)colset[j].add(x)boxset[i//3][j//3].add(x)get_candidates = lambda i, j: 9 - len(rowset[i] | colset[j] | boxset[i // 3][j // 3])hp = [(get_candidates(i, j), i, j) for i, j in eptpos]heapq.heapify(hp)def dfs():if not hp:return True_,i,j=heapq.heappop(hp)candi=0for x in range(1,10):if x in rowset[i] or x in colset[j] or x in boxset[i//3][j//3]:continueboard[i][j]=str(x)rowset[i].add(x)colset[j].add(x)boxset[i//3][j//3].add(x)if dfs():return Truerowset[i].remove(x)colset[j].remove(x)boxset[i//3][j//3].remove(x)candi+=1heapq.heappush(hp,(candi,i,j))return Falsedfs()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95153.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型训练全方位架构分析

文章目录前言一&#xff1a;数据工程二&#xff1a;计算硬件与集群三&#xff1a;训练并行策略四&#xff1a;模型架构五&#xff1a;优化与训练动力学六&#xff1a;内存管理七&#xff1a;训练流程与工具链八&#xff1a;成本与效率九&#xff1a;伦理、安全与对齐十&#xf…

人工智能加速漏洞利用,15分钟即可完成概念验证?

一个由人工智能驱动的攻击研究系统已经创建了十多个漏洞利用程序&#xff0c;在许多情况下将开发时间缩短到不到 15 分钟&#xff0c;凸显了全面自动化对企业防御者的影响。 该系统由两位以色列网络安全研究人员创建&#xff0c;利用大型语言模型 (LLM) 的提示、通用漏洞与暴露…

Go语言入门(13)-map

map是Go提供的另外一种集合&#xff0c;他可以&#xff1a;①将key映射到value;②快速通过key找到对应的value;同时&#xff0c;它的key几乎可以是任何类型。声明map&#xff0c;必须指定key和value的类型&#xff1a;下面来看一个简单的例程&#xff0c;在该例程中&#xff0c…

基于51单片机的配电室远程监控系统设计环境检测GSM环境报警设计

基于51单片机的配电室远程监控系统设计与环境检测GSM报警系统 1. 系统功能介绍 本设计是一种基于 STC89C51/STC89C52 单片机 的智能配电室环境监控与报警系统。该系统将温湿度检测、水位检测、烟雾检测、入侵检测与风扇、水泵控制相结合&#xff0c;同时配合 SIM900 GSM 模块 实…

从RNN到Transformer

从RNN到Transformer 目录 基础篇&#xff1a;序列模型概述RNN循环神经网络LSTM长短期记忆网络Transformer架构时间序列预测应用计算机视觉应用大语言模型应用实战与优化前沿发展 基础篇&#xff1a;序列模型概述 {#基础篇} 什么是序列数据&#xff1f; 序列数据是按照特定顺…

【Java进阶】Java与SpringBoot线程池深度优化指南

Java与SpringBoot线程池深度优化指南Java与SpringBoot线程池深度优化指南一、Java原生线程池核心原理1. ThreadPoolExecutor 核心参数关键参数解析&#xff1a;2. 阻塞队列选择策略3. 拒绝策略对比二、SpringBoot线程池配置与优化1. 自动配置线程池2. 异步任务配置类3. 自定义异…

mysql(自写)

Mysql介于应用和数据之间&#xff0c;通过一些设计 &#xff0c;将大量数据变成一张张像excel的数据表数据页&#xff1a;mysql将数据拆成一个一个的数据页索引&#xff1a;为每个页加入页号&#xff0c;再为每行数据加入序号&#xff0c;这个序号就是所谓的主键。 将每个页的…

Nginx 502 Bad Gateway:从 upstream 日志到 FastCGI 超时复盘

Nginx 502 Bad Gateway&#xff1a;从 upstream 日志到 FastCGI 超时复盘 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般绚烂的技术栈中&#xff0c;我是那个永不停歇的色彩收集者。 &#x1f98b; 每一个优化都是我培育的花朵&#xff0c;每一…

Dreamore AI-解读并描绘你的梦境

本文转载自&#xff1a;Dreamore AI-解读并描绘你的梦境 - Hello123工具导航 ** 一、&#x1f319; 初识 Dreamore AI&#xff1a;你的智能梦境伴侣 Dreamore AI 是一款超有趣的AI 梦境解析与可视化工具&#xff0c;它巧妙地把梦境解读和图像生成这两大功能融为一体。你只需要…

集合-单列集合(Collection)

List系列集合&#xff1a;添加的元素是有序、可重复、有索引的。Set系列集合&#xff1a;添加的元素是无序、不重复、无索引的。代码&#xff1a;public class A01_CollectionDemo1 {public static void main(String[] args) {/** 注意点&#xff1a;Collection是一个接口&…

写一个 RTX 5080 上的 cuda gemm fp16

1. cpu 计算 fp16 四则运算由于会用到cpu 的gemm 与 gpu gemm 的对比验证&#xff0c;所以&#xff0c;这里稍微解释一下 cpu 计算fp16 gemm 的过程。这里为了简化理解&#xff0c;cpu 中不使用 avx 相关的 fp16 运算器&#xff0c;而是直接使用 cpu 原先的 ALU 功能。这里使用…

web渗透PHP反序列化漏洞

web渗透PHP反序列化漏洞1&#xff09;PHP反序列化漏洞反序列我们可以控制对象中的值进行攻击O:1:"C":1:{s:3:"cmd";s:8:"ipconfig";}http://127.0.0.1/1.php?xO:1:%22C%22:1:{s:3:%22cmd%22;s:3:%22ver%22;}常见的反序列化魔术方法&#xff1a;…

FPGA学习笔记——SPI读写FLASH

目录 一、任务 二、需求分析 三、Visio图 四、具体分析 五、IP核配置 六、代码 七、实验现象 一、任务 实验任务&#xff1a; 1.按下按键key1&#xff0c;开启读ID操作&#xff0c;将读出来的ID&#xff0c;通过串口发送至PC端显示&#xff0c;显示格式为“读ID:XX-XX-XX…

一句话PHP木马——Web渗透测试中的隐形杀手

文章目录前言什么是"一句话木马"&#xff1f;常见变种与隐藏技巧1. 函数变种2. 加密混淆3. 变量拆分4. 特殊字符编码上传技巧与绕过防御常见上传绕过技巧检测与防御措施1. 服务器配置2. 上传验证3. 代码审计4. Web应用防火墙(WAF)实战案例分析深度思考&#xff1a;安…

房屋租赁系统|基于SpringBoot和Vue的房屋租赁系统(源码+数据库+文档)

项目介绍 : SpringbootMavenMybatis PlusVue Element UIMysql 开发的前后端分离的房屋租赁系统&#xff0c;项目分为管理端和用户端以及房主端 项目演示: 基于SpringBoot和Vue的房屋租赁系统 运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上…

C++动态规划——经典题目(下)

上一篇文章没有写全&#xff0c;这篇再补两道题酒鬼#include<bits/stdc.h> using namespace std; int dp[110][10]{0}; int a[1010]{0}; int n,m; int main() {cin>>n;dp[0][0]0;dp[1][0]0;dp[1][1]a[1];for(int i1;i<n;i){cin>>a[i];}for(int i2;i<n;…

介绍Ansible和实施Ansible PlayBook

第一章 介绍Ansible1. ansible的特点是什么&#xff1f;a. ansible使用yaml语法&#xff0c;语言格式简洁明了。b. ansible不需要代理&#xff0c;仅仅通过SSH远程连接就可以控制受管主机&#xff0c;是一种非常便捷、安全的方法。c. Ansible的功能强大&#xff0c;可以利用ans…

ComfyUI驱动的流程化大体量程序开发:构建上下文隔离的稳定系统

ComfyUI驱动的流程化大体量程序开发&#xff1a;构建上下文隔离的稳定系统 在现代软件工程中&#xff0c;随着程序体量的不断增长&#xff0c;上下文污染&#xff08;Context Pollution&#xff09;和状态依赖混乱已成为导致系统不稳定、调试困难、维护成本高昂的核心问题。尤…

基于SpringBoot的协同过滤余弦函数的美食推荐系统(爬虫Python)的设计与实现

基于SpringBootvue的协同过滤余弦函数的个性化美食(商城)推荐系统(爬虫Python)的设计与实现 1、项目的设计初衷&#xff1a; 随着互联网技术的快速发展和人们生活水平的不断提高&#xff0c;传统的美食消费模式已经无法满足现代消费者日益个性化和多样化的需求。在信息爆炸的时…

机器视觉学习-day19-图像亮度变换

1 亮度和对比度亮度&#xff1a;图像像素的整体强度&#xff0c;亮度提高就是所有的像素加一个固定值。对比度&#xff1a;当对比度提高时&#xff0c;图像的暗部与亮部的差值会变大。OpenCV调整图像亮度和对比度的公式使用一个&#xff1a;代码实践步骤&#xff1a;图片输入→…