leetcode–差分数组

leetcode–差分数组0.差分数组的概念:常用于某个区间值都需加/减去a的问题。1.1094拼车classSolution:defcarPooling(self,trips:List[List[int]],capacity:int)->bool:max_val=0foriinrange(len(trips)):max_val=max(max_val,trips[i][2])diff=[0

大家好,又见面了,我是你们的朋友全栈君。

0. 差分数组的概念:

常用于某个区间值都需加/减去a的问题。

1. 1094拼车

在这里插入图片描述

class Solution:
    def carPooling(self, trips: List[List[int]], capacity: int) -> bool:
        max_val = 0
        for i in range(len(trips)):
            max_val = max(max_val, trips[i][2])
        diff = [0]*(max_val+2)
        for i in range(len(trips)):
            diff[trips[i][1]] += trips[i][0]
            diff[trips[i][2]] -= trips[i][0]
        sum_val = 0   
        flag = True 
        for i in range(len(diff)):
            sum_val +=diff[i]
            if sum_val > capacity:
                flag = False
                break 
        return flag

2. 1109航班预定统计

在这里插入图片描述

class Solution:
    def corpFlightBookings(self, bookings: List[List[int]], n: int) -> List[int]:
        diff = [0]*(n+2)
        res = [0]*n
        sum_val = 0 
        for i in range(len(bookings)):
            diff[bookings[i][0]] += bookings[i][2]
            diff[bookings[i][1]+1] -= bookings[i][2]
        for i in range(1,n+1):
            sum_val+= diff[i]
            res[i-1] = sum_val
        return res

1674. 使数组互补的最少操作数

在这里插入图片描述

class Solution:
    def minMoves(self, nums: List[int], limit: int) -> int:
        diff = [0 for i in range(2*limit +2)]
        n = len(nums)
        for i in range(n//2):
            A = nums[i]
            B = nums[n-1-i]
            l = 2
            r = 2*limit
            diff [l] +=2
            diff[r+1] -=2
            l = 1 + min(A,B)
            r = limit + max(A,B)
            diff [l] -=1
            diff [r+1] +=1
            diff [A+B] -=1
            diff[A+B+1] +=1
        print(diff)    
        res = n    
        sum_val = 0
        for j in range(2,2+limit+1):
            sum_val += diff[j]
            res = min(res, sum_val)
        return res  

121. 买卖股票I

122. 买卖股票II

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133434.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 自学Java开发一般需要多久?

    自学Java开发一般需要多久?自学Java开发一般需要多久?相信有很多想转行或者想学习Java的人都会关注这个问题!那我们今天就来说一下这个问题,具体需要多久呢?这个时间因人而异,毕竟每个人的学习能力和效率都是不同的!打个比方,如果你是零基础,每天学习8小时,基本上每天都按时学习的话,大概需要半年多的时间,就能学的差不多了!如果你本身就会C或C++语言,那么Java对你来说也许会简单许多,学起来自然就快了!下面就给大家简单说一下学习方法,让你尽可能快的学会Java!学习路线:…

    2022年7月8日
    28
  • pycharm有中文插件吗_pycharm中英文切换

    pycharm有中文插件吗_pycharm中英文切换打开file——settings——plugins:1-翻译插件(Translation),哈哈,好用吧,再也不用去用词典翻译了,直接在pycharm里就可以翻译安装:效果:2-汉化pycharm,实在不喜欢这些英语的,把它全部汉化安装:效果:(哈哈,还担心英语不好吗)…

    2022年8月26日
    7
  • logback自定义日志格式

    logback自定义日志格式logback自定义日志格式1.ClassicConverter继承ClassicConverterpackagecom.demo.conf;importch.qos.logback.classic.pattern.ClassicConverter;importch.qos.logback.classic.spi.ILoggingEvent;importjava.net…

    2022年5月2日
    66
  • maria和mysql_mysql为什么没有淘汰

    maria和mysql_mysql为什么没有淘汰mysql:driver驱动类为:com.mysql.jdbc.Driverurl为:jdbc:mysql://localhost:3306/testmariadbdriver驱动类为:org.mariadb.jdbc.Driverurl为:jdbc:mariadb://localhost:3306/test

    2025年7月9日
    1
  • input file样式设置

    input file样式设置需要提交input上传的文件等内容,所以需要form表单HTML代码 CSS样式#outData{ width:96%; background:#FFFFFF; height:100%; text-align:right; margin:0auto;}#upload{ display:inline-block; margin-top:5px

    2022年7月25日
    20
  • 常用webservice方法_太极拳初学入门的基本要领

    常用webservice方法_太极拳初学入门的基本要领1.什么是webservice先来考虑一个问题,如果我们要在自己的程序里面展示天气预报,那怎么弄?正确的做法是我们发送一个请求到一个系统,他会给我们返回来天气情况。这个就是一个webservice。天气预报系统就相当于webservice的服务端,我们的系统就相当于客户端。2.如何调用别人发布的webservice

    2022年9月21日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号