LeetCode 每日一题 2023/9/11-2023/9/17

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


目录

      • 9/11 630. 课程表 III
      • 9/12 1462. 课程表 IV
      • 9/13 2596. 检查骑士巡视方案
      • 9/14 1222. 可以攻击国王的皇后
      • 9/15 LCP 50. 宝石补给
      • 9/16 198. 打家劫舍
      • 9/17


9/11 630. 课程表 III

将期限日期从小到大排序
将耗时放入大顶堆中 如果当前耗时无法满足 但是比堆中最大值小时 进行替换

def scheduleCourse(courses):""":type courses: List[List[int]]:rtype: int"""import heapql=[]heapq.heapify(l)courses.sort(key = lambda x:x[1])now = 0for d,last in courses:if now+d<=last:now +=dheapq.heappush(l,-d)elif l and -l[0]>d:now = now+l[0]+dheapq.heappop(l)heapq.heappush(l,-d)return len(l)

9/12 1462. 课程表 IV

m[i][j]记录i是否依赖j
dg[i]记录当前i是否还有依赖未考虑
g[i]记录i依赖的课程
bfs l中存放当前无课程依赖可以考虑的课程

def checkIfPrerequisite(numCourses, prerequisites, queries):""":type numCourses: int:type prerequisites: List[List[int]]:type queries: List[List[int]]:rtype: List[bool]"""m = [[False]*numCourses for _ in range(numCourses)]dg = [0]*numCoursesg = [[] for _ in range(numCourses)]for p in prerequisites:dg[p[1]] +=1g[p[0]].append(p[1])l = []for i in range(numCourses):if dg[i]==0:l.append(i)while l:tmp = []for cur in l:for nx in g[cur]:m[cur][nx] = Truefor i in range(numCourses):m[i][nx] = m[i][cur] or m[i][nx]dg[nx]-=1if dg[nx]==0:tmp.append(nx)l= tmpans = []for q in queries:ans.append(m[q[0]][q[1]])return ans

9/13 2596. 检查骑士巡视方案

规定从左上角出发 判断grid[0][0]是否为0
从当前位置向八个方向遍历是否能够到达下一个点

def checkValidGrid(grid):""":type grid: List[List[int]]:rtype: bool"""x,y=0,0n = len(grid)if grid[0][0]!=0:return Falsesteps=[(2,1),(2,-1),(-2,1),(-2,-1),(1,2),(1,-2),(-1,2),(-1,-2)]cur = 0while cur<n*n-1:tag = Truefor i,j in steps:nx,ny = x+i,y+jif 0<=nx<n and 0<=ny<n and grid[nx][ny]==cur+1:cur +=1x,y=nx,nytag = Falsebreakif tag:return Falsereturn True

9/14 1222. 可以攻击国王的皇后

mem记录八个方向皇后可以攻击到国王的最近距离

def queensAttacktheKing(queens, king):""":type queens: List[List[int]]:type king: List[int]:rtype: List[List[int]]"""mem = {}    for x,y in queens:i,j=0,0v = 0if x==king[0]:v = abs(y-king[1])j = (y-king[1])//velif y==king[1]:v = abs(x-king[0])i = (x-king[0])//velse:v = abs(x-king[0])if v!=abs(y-king[1]):continuei = (x-king[0])//vj = (y-king[1])//vif (i,j) not in mem:mem[(i,j)] = velse:if v<mem[(i,j)]:mem[(i,j)] = vans = []for (i,j),v in mem.items():ans.append([king[0]+i*v,king[1]+j*v])return ans

9/15 LCP 50. 宝石补给

按照规则依次赠送

def giveGem(gem, operations):""":type gem: List[int]:type operations: List[List[int]]:rtype: int"""for x,y in operations:v = gem[x]//2gem[x]-=vgem[y]+=vreturn max(gem)-min(gem)

9/16 198. 打家劫舍

使用一个maxlist记录 进入当前x位置的房间能够得到的最大价值
可知前一个位置无法获取 所以在x时
可以通过[0,x-2]之间的最大值加上x的值获得该位置最大值
而在maxlist中最大的值必定是在最后两个位置 n,n-1
因为位置n的值必定大于n-2的值 所以我们只要比较maxlist中x-3,x-2这两个位置的值
就可以得到[0,x-2]之间的最大值

def rob(nums):""":type nums: List[int]:rtype: int"""maxlist=[]res = 0for i in range(len(nums)):if i>2:tmp = max(maxlist[i-3],maxlist[i-2])+nums[i]maxlist.append(tmp)elif i==2:tmp = maxlist[0]+nums[i]maxlist.append(tmp)else:tmp = nums[i]maxlist.append(nums[i])res = max(res,tmp)return res

9/17


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

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

相关文章

去耦电路设计应用指南(一)MCU去耦设计介绍

&#xff08;一&#xff09;MCU去耦设计介绍 1. 概述2. MCU需要去耦的原因2.1 去耦电路简介2.2 电源噪声产生的原因2.3 插入损耗2.4 去耦电路简介 参考资料来自网上&#xff1a; 1. 概述 我们经常看到单片机或者IC电路管脚常常会放置一个或者多个陶瓷电容&#xff0c;他们主要…

9.3.5网络原理(应用层HTTP/HTTPS)

一.HTTP: 1. HTTP是超文本传输协议,除了传输字符串,还可以传输图片,字体,视频,音频. 2. 3.HTTP协议报文格式:a.首行,b.请求头(header),c.空行(相当于一个分隔符,分隔了header和body),d.正文(body). 4. 5.URL:唯一资源描述符(长度不限制). a. b.注意:查询字符串(query stri…

【Selenium】webdriver.ChromeOptions()官方文档参数

Google官方Chrome文档&#xff0c;在此记录一下 Chrome Flags for Tooling Many tools maintain a list of runtime flags for Chrome to configure the environment. This file is an attempt to document all chrome flags that are relevant to tools, automation, benchm…

Windows10设置开启自启动任务

Windows10设置开机自启动任务 在日常的工作中经常会遇到需要给系统设置一个开机自启动的任务&#xff0c;例如开机自启动浏览器&#xff0c;开机自启动代理程序等等&#xff0c;这个时候就需要给系统设置一个开机自启动任务&#xff0c;本文主要介绍一下设置开机自启动任务的几…

使用 Messenger 跨进程通信

什么是Messenger Messenger 也是IPC的方案之一&#xff0c;是基于消息的跨进程通信。基于消息是什么意思&#xff1f;Handler是我们最常用的消息机制&#xff0c;所以 Messenger 对于使用者来说就像是使用 Handler。实际上 Messenger 就是 AIDL 的上层封装而已&#xff0c;它们…

微服务全栈:深入核心组件与开发技巧

文章目录 1.服务注册与发现1.1. 客户端注册 (ZooKeeper)1.2. 第三方注册 (独立的服务Registrar)1.3. 客户端发现1.4. 服务端发现1.5. Consul1.6. Eureka1.7. SmartStack1.8. Etcd 2. API 网关2.1. 请求转发2.2. 响应合并2.3. 协议转换2.4. 数据转换2.5. 安全认证 3. 配置中心3.…

什么是交换分区以及如何创建交换分区

介绍 交换分区是Linux中的一项功能,可提供虚拟内存空间和多种好处。它允许操作系统有效地处理内存需求。因此,交换分区提高了系统稳定性、响应能力和繁重工作负载处理。 本指南将探讨交换分区及其优缺点,并概述在 Linux 系统上创建和管理交换分区的步骤。 先决条件 运行 …

PHP自己的框架2.0结合容器技术(重构篇二)

目录 1、使用容器实现框架加载类运行 2、 创建框架容器类core/fm/Di.php 3、框架使用容器类来执行public/index.php 4、运行效果还是一样 1、使用容器实现框架加载类运行 2、 创建框架容器类core/fm/Di.php 什么是容器&#xff1f;容器就相当于盒子&#xff0c;把很多类放里…

NTIRE2023-RTSR-Track2 冠军方案详解

编辑 | Happy 首发 | AIWalker 链接 | https://mp.weixin.qq.com/s/JQ5g9yn_OdjR8hi_tWc4jA arXiv:2305.02126 , cvpr2023 , code , video 本文了一个实时&轻量图像超分方案Bicubic&#xff0c;它通过下采样模块降低图像分辨率以减少计算量&#xff0c;在网络尾部采用…

三分钟使用ngrok实现内网穿透

1.官网注册 官网地址&#xff1a;https://ngrok.com/ tips:若使用邮箱注册自行认证 2.下载对应部署电脑 压缩包&#xff08;此处笔者使用自己电脑因此以Windows11作为案例&#xff09; 解压下载的ngrok压缩包&#xff0c;在对应目录进入命令提示符装口&#xff08;也可直接…

免费api接口:物流api,企业工商查询api,游戏api。。。

免费api接口&#xff0c;物流api,企业工商查询api,游戏api。。。都有。 Facebook Games Services - Facebook Games Services 为游戏开发者提供了各种服务, 包括(但不限于) 成就 API, 分数 API, 应用通知, 请求, 游戏养成和 Facebook SDK for Unity.Google Play Games Service…

Git diff 使用 vimdiff 对比差异

在Ubuntu中使用Git时&#xff0c;可使用命令行的git diff命令来对比两次提交的差异&#xff0c;但是这种对比查看方式无法直观地查看修改的差异&#xff0c;在对比和查看时不太方便。 可以使用vimdiff作为Git diff的对比工具&#xff0c;这样就方便了许多&#xff0c;Git的配置…

TensorFlow 03(Keras)

一、tf.keras tf.keras是TensorFlow 2.0的高阶API接口&#xff0c;为TensorFlow的代码提供了新的风格和设计模式&#xff0c;大大提升了TF代码的简洁性和复用性&#xff0c;官方也推荐使用tf.keras来进行模型设计和开发。 1.1 tf.keras中常用模块 如下表所示: 1.2 常用方法 …

TCP/IP网络江湖——数据链路层的协议与传承(数据链路层中篇:数据链路层的协议与帧)

0、引言 网络江湖,宛如千年武林,承载着代代传承的文化和传统。在这个广袤的江湖之中,数据链路层犹如武林门派,代代传承着网络通信的精华。这一部分将带领我们深入探讨数据链路层的协议与传承,揭示其在网络江湖中的精彩故事。 就如同江湖中的武者需要基本功夫作为修行的基础…

mysql如何实现根据经纬度判断某一个坐标是否在一个多边形区域范围内

要根据经纬度判断一个坐标是否在一个多边形区域内&#xff0c;MySQL提供了几种函数来处理地理空间数据&#xff0c;其中包括用于处理多边形区域的函数。 1.创建一个包含多边形区域的表&#xff1a; 首先&#xff0c;创建一个表来存储多边形区域。可以使用ST_GeomFromText函数将…

kuiper 规则sql写法

创建规则对接收到的报文数据进行业务过滤&#xff0c;报文有各种结构的&#xff0c;下面对各种结构报文sql过滤使用进行说明 下面sql规则统一对temperature大于20的数据进行过滤 1&#xff1a;单层结构报文 {"temperature": 35,"humidity": 66 } sql写…

【Leetcode Sheet】Weekly Practice 6

Leetcode Test 2605 从两个数字数组里生成最小数字(9.5) 给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 &#xff0c;每个数组中的元素 互不相同 &#xff0c;请你返回 最小 的数字&#xff0c;两个数组都 至少 包含这个数字的某个数位。 提示&#xff1a; 1 < …

MySQL8--my.cnf配置文件的设置

原文网址&#xff1a;MySQL8--my.cfg配置文件的设置_IT利刃出鞘的博客-CSDN博客 简介 本文介绍MySQL8的my.cnf的配置。 典型配置 [client] default-character-setutf8mb4[mysql] default-character-setutf8mb4[mysqld] #服务端口号 默认3306 port3306datadir /work/docker…

一个FlutterCocoapods项目打包问题集锦

一个Flutter&Cocoapods项目打包问题集锦 问题1 github加速问题 cocoapods项目需要访问https://github.com/CocoaPods/Specs.git&#xff0c;众所周知&#xff0c;github经常被墙&#xff0c;导致经常需要借助加速来下载和访问&#xff0c;这里可以使用油猴脚本或者Fastgi…

kibana报错内存溢出问题解决

一、背景&#xff1a; kibana内存溢出&#xff0c;进程被kill掉&#xff0c;导致前端页面访问不到。 报错内容 二、报错原因&#xff1a; 发现是前端 js 报的内存 oom 异常&#xff0c;通过网上资料发现node.js 的默认内存大小为1.4G Node 中通过 JavaScript 使用内存时只能…