小工具知识网

当前位置: 首页 > 行业知识 > 2024蓝桥杯每日一题(双指针)

行业知识

2024蓝桥杯每日一题(双指针)

2026-11-14 00:19:43 来源:互联网转载

一、第一题:牛的学术圈

��

解题思路:双指针+贪心

     仔细思考可以知道,写一篇综述最多在原来的H指数的基础上+1,所以基本方法可以是先求出原始的H指数,然后分类讨论怎么样提升H指数。

【Python程序代码】

n,l = map(int,input().split())a = list(map(int,input().split()))a.sort()res,suml,sumr = 0,0,0for i in range(n):    sumr = n-i    if a[i]>sumr:        if i==0:break        if a[i-1]+1>=sumr+1 and l>=1:            sumr+=1            break        break    if a[i]==sumr:        j,c = i,1        if i == 0: break        while j+1=c+1:            sumr+=1            breakif l==0 and a[n-1]==0:print(0)else:print(sumr)

二、第二题:最长连续不重复子序列

思路:双指针

        双指针模板题

【Python程序代码】

n = int(input())a = [0] + list(map(int,input().split()))mp = [0]*(100010)res,j=1,1for i in range(1,n+1):    if mp[a[i]]:        res = max(res,i-j)        while a[j]!=a[i]:            mp[a[j]]-=1            j +=1        j += 1    else:        mp[a[i]]+=1res = max(res,i-j+1)print(res)

三、第三题: 数组元素的目标和

解题思路:双指针

        双指针模板题

【Python程序代码】

n,m,x = map(int,input().split())a = list(map(int,input().split()))b = list(map(int,input().split()))j = m-1res = []for i in range(n):    if a[i]+b[j]x:        while j>0 and a[i]+b[j]>=x:            if a[i]+b[j]==x:                res.append((i,j))            j -= 1for i in res:    print(i[0],i[1])

四、第四题: 判断子序列

解题思路:双指针

        双指针模板题

【Python程序代码】

n,m = map(int,input().split())a = list(map(int,input().split()))b = list(map(int,input().split()))j = 0for i in range(m):    if j==n:break    if b[i]==a[j]:        j += 1if j==n:print("Yes")else:print("No")

五、第五题: 日志统计

 解题思路:双指针+滑动窗口

        双指针+滑动窗口模板题

【Python程序代码】

from collections import defaultdictn,d,k = map(int,input().split())mp = defaultdict(int)a,res = [],[]for i in range(n):    ts,id = map(int,input().split())    a.append([ts,id])a.sort()j,pret = 0,0for i in range(n):    teps,tepd = a[i]    if teps - a[j][0]>=d:        while teps - a[j][0]>=d:            mp[a[j][1]]-=1            j += 1        pret = a[j][0]    mp[tepd] += 1    if mp[tepd]>=k:         res.append(tepd)res = list(set(res))res.sort()for i in res:print(i)

 

上一篇:揭秘Matx主板尺寸,大小一览,精选标题吸引眼球!

下一篇:淘宝客软件下载攻略,轻松获取优质资源,一键开启赚钱之旅!