当前位置: 首页 > news >正文

LeetCode 每日一题 2024/9/9-2024/9/15

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


目录

      • 9/9 2181. 合并零之间的节点
      • 9/10 2552. 统计上升四元组
      • 9/11 2555. 两个线段获得的最多奖品
      • 9/12 2576. 求出最多标记下标
      • 9/13 2398. 预算内的最多机器人数目
      • 9/14 2390. 从字符串中移除星号
      • 9/15 2848. 与车相交的点


9/9 2181. 合并零之间的节点

从头遍历 pre记录两个零之间节点之和
cur记录当前更新节点和数值前一个位置
如果遇到0 判断这个0之前是否有节点和 如果有则更新cur

class ListNode(object):def __init__(self, val=0, next=None):self.val = valself.next = next
def mergeNodes(head):""":type head: Optional[ListNode]:rtype: Optional[ListNode]"""ans = headcur = anspre = 0while head:if head.val==0:if pre!=0:cur = cur.nextcur.val = prepre = 0else:pre+=head.valhead = head.nextcur.next=Nonereturn ans.next

9/10 2552. 统计上升四元组

(i,j,k,l)
遍历j
统计i<j nums[i]<nums[k] i的个数
k<l nums[j]<nums[l] l的个数
且nums[k]<nums[j]
使用pre[x]表示0~j-1中小于x的个数 可以快速得到j左侧小于nums[k]的个数
k从后往前统计大于nums[j]的个数
相乘即为该j得到的结果

def countQuadruplets(nums):""":type nums: List[int]:rtype: int"""n=len(nums)pre=[0]*(n+1)ans = 0for j in range(n):suf = 0for k in range(n-1,j,-1):if nums[k]<nums[j]:ans += pre[nums[k]]*sufelse:suf+=1for x in range(nums[j]+1,n+1):pre[x]+=1return ans

9/11 2555. 两个线段获得的最多奖品

滑动窗口
第二条线段右端点为pos[r] 第一条线段左端点为pos[l]
定义mx[i+1]表示第一条线段右端点<=pos[i] 最多覆盖奖品数

def maximizeWin(prizePositions, k):""":type prizePositions: List[int]:type k: int:rtype: int"""n=len(prizePositions)if k*2+1>=(prizePositions[-1]-prizePositions[0]):return nans = 0l = 0mx=[0]*(n+1)for r,p in enumerate(prizePositions):while p-prizePositions[l]>k:l+=1ans = max(ans,mx[l]+r-l+1)mx[r+1] = max(mx[r],r-l+1)return ans

9/12 2576. 求出最多标记下标

从小到大排序
总共有n个数 最多有n//2对
ind为当前考虑的位置
从最小值ind=0开始寻找比他2大的数x
x从中间(n+1)//2开始寻找即可
找到第一个满足条件的 那么再考虑第二小的数值 以此类推
最终将ind
2即为匹配总个数

def maxNumOfMarkedIndices(nums):""":type nums: List[int]:rtype: int"""nums.sort()n =len(nums)ind = 0for x in nums[(n+1)//2:]:if nums[ind]*2<=x:ind+=1return ind*2

9/13 2398. 预算内的最多机器人数目

连续的机器人 双指针[i,j]为运行的机器人坐标
单调递减队列q用来维护区间内chargetime最大值
s为当前区域内runningcost之和
遍历j 如果当前[i,j]不满足条件 则将i往右移动

def maximumRobots(chargeTimes, runningCosts, budget):""":type chargeTimes: List[int]:type runningCosts: List[int]:type budget: int:rtype: int"""ans = 0n=len(chargeTimes)s = 0q=[]i=0for j in range(n):s += runningCosts[j]while q and chargeTimes[q[-1]]<=chargeTimes[j]:q.pop()q.append(j)while i<=j and (j-i+1)*s+chargeTimes[q[0]]>budget:if q and q[0]==i:q = q[1:]s -= runningCosts[i]i+=1ans=max(ans,j-i+1)return ans

9/14 2390. 从字符串中移除星号

用栈来存放字符 遇到星号则出栈一个字符

def removeStars(s):""":type s: str:rtype: str"""st = []for c in s:if c=="*" :if st:st.pop()else:st.append(c)return "".join(st)

9/15 2848. 与车相交的点

将起点从小到大排序
依次计算起点是否在当前区域内 是否可以扩展当前区域的终点
如果不再则计算新的区域起点

def numberOfPoints(nums):""":type nums: List[List[int]]:rtype: int"""nums.sort()ans = 0st,ed =0,0for s,e in nums:if s>ed:if ed>0:ans += ed-st+1st,ed = s,eelse:ed = max(ed,e)ans += ed-st+1return ans

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux常见查看文件命令
  • 国产化中间件正在侵蚀开源中间件
  • 二叉搜索树(Java实现)
  • 【智路】智路OS Airos Edge 2.0 Quick Start
  • Golang | Leetcode Golang题解之第403题青蛙过河
  • 【VUE】快速上手
  • 【接口测试】Postman--变量与集合
  • Java入门程序-HelloWorld
  • 在 Linux 系统中目录架构说明
  • 算法之搜索--最长公共子序列LCS
  • 传输层协议 —— UDP协议
  • 闲置物品交易系统小程序的设计
  • Go 交叉编译
  • <<编码>> 第 14 章 反馈与触发器(2)--或非门反馈 示例电路
  • Python MongoDB
  • SegmentFault for Android 3.0 发布
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Android 架构优化~MVP 架构改造
  • Android 控件背景颜色处理
  • CentOS7简单部署NFS
  • express + mock 让前后台并行开发
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Netty源码解析1-Buffer
  • SpiderData 2019年2月16日 DApp数据排行榜
  • V4L2视频输入框架概述
  • XML已死 ?
  • 程序员最讨厌的9句话,你可有补充?
  • 从tcpdump抓包看TCP/IP协议
  • 二维平面内的碰撞检测【一】
  • 翻译--Thinking in React
  • 高程读书笔记 第六章 面向对象程序设计
  • 类orAPI - 收藏集 - 掘金
  • 你不可错过的前端面试题(一)
  • 区块链共识机制优缺点对比都是什么
  • 驱动程序原理
  • 软件开发学习的5大技巧,你知道吗?
  • 山寨一个 Promise
  • 深入 Nginx 之配置篇
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 学习Vue.js的五个小例子
  • Android开发者必备:推荐一款助力开发的开源APP
  • 阿里云API、SDK和CLI应用实践方案
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # include “ “ 和 # include < >两者的区别
  • #NOIP 2014# day.2 T2 寻找道路
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (pojstep1.3.1)1017(构造法模拟)
  • (vue)页面文件上传获取:action地址
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)SSM环卫人员管理平台 计算机毕设36412