北京海淀房管局网站,郑州seo线下培训,搜索网站 模板,建设行业公司网站基本概念
双指针:在区间操作时#xff0c;利用两个下标同时遍历#xff0c;进行高效操作
双指针利用区间性质可以把0(n2)时间降低到0(n) 蓝桥532 import os
import sys# 请在此输入您的代码
w int(input())
n int(input())
b []
ans 0
for i in range(n):b.append(int(…基本概念
双指针:在区间操作时利用两个下标同时遍历进行高效操作
双指针利用区间性质可以把0(n2)时间降低到0(n) 蓝桥532 import os
import sys# 请在此输入您的代码
w int(input())
n int(input())
b []
ans 0
for i in range(n):b.append(int(input()))
b.sort()
l, r 0, len(b) - 1
while True:if l r:ans 1breakif l r:breakif b[l] b[r] w:ans 1r - 1else:ans 1r - 1l 1
print(ans)同向扫描:也被称为滑动窗口始终维护一个[lef,right]的区间
维护[left,right]区间中的信息:区间和、各个元素个数等
左端点往右移动表示删除元素
右端点往右移动表示增加元素
当移动到尾部则停止或满足特殊条件时停止 蓝桥1372 n, s map(int, input().split())
a list(map(int, input().split()))
l, r 0, 0
ans n 1
total 0
while l n:while r n and total s:total a[r]r 1if total s:ans min(ans,r-l)total - a[l]l 1if ans n 1:ans 0
print(ans)
蓝桥1621 import os
import sys# 请在此输入您的代码
n, m, k map(int, input().split())
a list(map(int, input().split()))
cnt 0
l, r 0, 0
ans 0
while l n:while r n and cnt k:if a[r] m:cnt 1r 1if cnt k:ans (n - 1) - (r - 2)if a[l] m:cnt - 1l 1print(ans)
蓝桥3695 import os
import sys
# 请输入你的代码
def sol(m):l,r,res 0,n-1,0while lr:while lr and a[l]a[r]m: # 容斥定理 找到小于等于m的数r-1res(r-l)l1return res
def printf():global n,L,R,an,L,R map(int,input().split())a list(map(int,input().split()))a.sort()print(sol(R)-sol(L-1)) # 找到小于等于R的数字个数和小于等于L-1的数字个数之差就是结果
printf() # 利用了容斥定理