5342. 最多可以参加的会议数目

给你一个数组 events,其中 events[i] = [startDayi, endDayi] ,表示会议 i 开始于 startDayi ,结束于 endDayi 。

你可以在满足 startDayi <= d <= endDayi 中的任意一天 d 参加会议 i 。注意,一天只能参加一个会议。

请你返回你可以参加的 最大 会议数目。

方法:

1.贪心,选择会议最早结束的优先参加,再以一个空间记录参加过的天数

2.贪心+优先队列,维护一个优先队列(小顶堆),选择会议开始时间最早的参加

1.如果当前天数>该时间段结束时间,跳过

2.如果当天天数>该时间段开始时间,将【当前天数,该时间段结束时间】插入堆,为什么这么做?因为这表示我这一天现在至少已经找到一个满足条件的了,但堆中说不定还有也满足当前天数并且结束时间更早的,所以现在找到的只是一个备选项

3.如果当天天数=该时间段开始时间,找到

核心就是说,我尽量选择开始的最早,结束的最早的情况

class Solution(object):
    def maxEvents(self, events):
        """
        :type events: List[List[int]]
        :rtype: int
        """
        events.sort(key=lambda x:x[1])
        s=set()
        for one in events:
            for i in range(one[0],one[1]+1):
                if i not in s:
                    s.add(i)
                    break
        return len(s)

class Solution:
    def maxEvents(self, events: List[List[int]]) -> int:
        res = 0
        heapq.heapify(events) # 把events转化成堆结构
        cur = events[0][0]
        while events:
            s, e = heapq.heappop(events)
            # print([s,e])
            if e < cur: # 如果结束时间小于当前天,说明过期了,不能参加
                continue
            # 如果开始时间小于当天,我们也不必今天参加,可以在(当天,结束天)任何一天参加
            if s < cur: 
                heapq.heappush(events,[cur,e])
            else:
                cur = max(cur + 1,s + 1)
                res += 1
        return res 

 

好的,我来为您介绍一下用vant实现表单校验的方法。 首先,您需要使用vant组件库中的`Field`组件作为表单输入框,并在其上添加`rules`属性以实现校验功能。下面是一个示例代码: ```html <template> <van-field v-model="value" label="输入框" placeholder="请输入内容" :rules="rules" /> </template> <script> export default { data() { return { value: '', rules: [ { validator: (rule, value) => { if (!value) { return '请输入内容'; } else if (value > 100) { return '最大不能超过100'; } else if (!/^\d+(\.\d{1})?$/.test(value)) { return '最多保留小数点一位'; } else { return true; } } } ] }; } }; </script> ``` 在这段代码中,我们定义了一个`value`变量来存储输入框中的值,同时定义了一个`rules`数组来存储校验规则。在`rules`数组中,我们使用了`validator`函数来实现校验逻辑。如果校验通过,`validator`函数应该返回`true`;如果校验失败,`validator`函数应该返回一个字符串,其中包含校验失败的原因。 在上述示例代码中,我们定义了三个校验规则: 1. 如果输入框的值为空,提示用户“请输入内容”; 2. 如果输入框的值大于100,提示用户“最大不能超过100”; 3. 如果输入框的值不符合“最多保留小数点一位”的要求,提示用户“最多保留小数点一位”。 您可以根据自己的需求修改这些校验规则,以适应不同的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值