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
相关文章:
LeetCode 每日一题 2023/9/11-2023/9/17
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/11 630. 课程表 III9/12 1462. 课程表 IV9/13 2596. 检查骑士巡视方案9/14 1222. 可以攻击国王的皇后9/15 LCP 50. 宝石补给9/16 198. 打家劫舍9/17 9/11 630. 课程表 II…...
Linux系统调试篇——GDBSERVER远程调试
文章目录 安装 GDBSERVERgdbserver 用法具体步骤 本篇讲解如何使用gdbserver对目标开发板上的程序进行远程调试。 安装 GDBSERVER 首先在开发板上安装 gdbserver: apt install gdbservergdbserver 用法 gdbserver用法描述: Usage: gdbserver [OPTION…...

前端实现打字效果
前端实现打字效果 不带光标 只一次播放 HTML <!-- 需要在初始化的时候不显示文字 --> <div id"typing"></div>CSS #typing {position: relative;font-size: 24px;font-family: Arial, sans-serif;padding: 10px; }JS const text "要显…...
Unix和Linux、GNU和GPL、RHEL和Centos、Debian和Ubuntu
文章目录 Unix和LinuxGNU和GPLGNU/Linux名称的来源RHEL和CentosDebian和Ubuntu 以上都是操作系统,服务器操作系统、桌面操作系统。 对于刚刚接触Linux系统或者从事运维相关工作的人来说,肯定会听过很多名词,但是不知道他们的区别和联系&#…...

InfiniBand vs 光纤通道,存储协议的选择
数字时代,数据量爆发增长,企业越来越迫切地追求高吞吐量、低延迟和更高性能的网络基础设施,存储协议的选择变得愈发至关重要。在众多存储协议中,InfiniBand和光纤通道备受关注。本文旨在深入探讨InfiniBand和光纤通道作为存储协议…...

第2章_freeRTOS入门与工程实践之单片机程序设计模式
本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id724601559592 配套资料获取:https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…...
python LeetCode 刷题记录 58
题目 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 输入:s "Hello World" 输出:5 解释&am…...

HarmonyOS开发:那些开发中常见的问题汇总(一)
前言 本来这篇文章需要讲述静态共享包如何实现远程依赖和上传以及关于静态共享包私服的搭建,非常遗憾的告诉大家,由于组织管理申请迟迟未通过,和部分文档官方权限暂未开放,关于这方面的讲解需要延后了,大概需要等到202…...

新能源汽车驱动电机的基本知识
学习目标:了解电机的基本知识。能力目标:培养学生搜集和整理相关资料的能力。素质目标:培养学生良好的职业素养。额定电店.在夫见定条件下电池工作的*于佳 电压知识准备术语和定义。 (1)驱动电机系统 通过有效的控制策略将动力蓄电池提供的直流电转化为交流实现电机的正转以及反…...
流媒体协议——RTSP
RTSP RTSP(Real Time Streaming Protocol):实时流媒体协议,是基于文本的协议,采用ISO10646字符集,使用UTF-8编码 RTSP-over-TCP,默认端口554 RTSP-over-HTTP,默认端口为8080 RTSP OVER WebSocket 默认端口为 80&am…...

Arcgis提取点数据经纬度
Arcgis提取点数据经纬度 现已打开tiff影像和采样点的shape文件。目标是提取采样点的经纬度信息然后导出。 打开数据管理工具-要素-添加XY坐标 在点的图层上右击打开属性表时,经纬度信息已经添加到属性表中。 在属性表的左上角中点击导出,导出为文本文…...

【小记录】jupyter notebook新版本
手欠升级 😅今天手贱,在anaconda navigator里面更新了最新版本的spyder,然后莫名奇妙地jupyter notebook就打不开了😅,报错说缺少模块”ModuleNotFoundError: No module named jupyter_server.contents“,…...

Ubuntu安装深度学习环境相关(yolov8-python部署)
Ubuntu安装深度学习环境相关(yolov8-python部署) 本文将从如下几个方面总结相关的工作过程: Ubuntu系统安装(联想小新pro16) 2.显卡驱动安装3.测试深度学习模型 1. Ubunut 系统安装 之前在台式机上安装过Ubuntu,以为再在笔记本上安装会是小菜一碟&…...

jmeter采集ELK平台海量业务日志( 采用Scroll)
由于性能测试需要,需采集某业务系统海量日志(百万以上)来使用。但Elasticsearch的结果分页size单次最大为10000(运维同事为保证ES安全)。为了能够快速采集ELK平台业务日志,可以使用以下2种方式采集…...

React 全栈体系(五)
第三章:React 应用(基于 React 脚手架) 一、使用 create-react-app 创建 react 应用 1. react 脚手架 xxx 脚手架: 用来帮助程序员快速创建一个基于 xxx 库的模板项目 包含了所有需要的配置(语法检查、jsx 编译、devServer…)下载好了所有…...
动态规划——状态机模型
什么是状态机模型?其实大部分dp问题都可以算是状态机,因为对于一个物品,例如01背包,无非是选与不选两种状态,这两种状态就构成了一个状态机。状态机就是一种用来描述对象或者系统在不同状态之间迁移的模型。 那么状态机…...

合宙Air724UG LuatOS-Air LVGL API控件-图片(Gif)
图片(Gif) GIF图片显示,core版本号要>3211 示例代码 方法一 -- 创建GIF图片控件 glvgl.gif_create(lvgl.scr_act()) -- 设置显示的GIF图像 lvgl.gif_set_src(g,"/lua/test.gif") -- gif图片居中 lvgl.obj_align(g, nil, lvgl…...

【C语言】指针和数组笔试题解析(2)
【C语言】指针和数组笔试题解析(1), 这是第一篇关于sizeof与strlen在指针中的应用,而这一篇主要讲解在各种情形下的灵活运用,也是大厂中经典的面试题 第一题: int main() {int a[5] { 1, 2, 3, 4, 5 };in…...
3.3 DLL注入:突破会话0强力注入
Session是Windows系统的一个安全特性,该特性引入了针对用户体验提高的安全机制,即拆分Session 0和用户会话,这种拆分Session 0和Session 1的机制对于提高安全性非常有用,这是因为将桌面服务进程,驱动程序以及其他系统级…...

C语言 —— 初步入门知识(内存、指针、结构体)
本篇文章将接着上篇继续介绍C语言的基础知识,那么对于C语言大部分初学者会觉得难以理解, 所以作者将指针单独拿出来写篇较短的文章进行讲解。 1.指针 1.1 内存 要学习指针,就先要了解内存。一起来看。 内存是计算机中的关键组成部分ÿ…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...