双指针,模拟

小猫排队

https://www.nowcoder.com/practice/a88a85759a9b4c9c8dfd687c366ad5bf

思路:按照题意,用双指针进行模拟即可

代码:

import sys
input = lambda: sys.stdin.readline().strip()

import math
inf = 10 ** 18

def I():
    return input()

def II():
    return int(input())

def MII():
    return map(int, input().split())

def GMI():
    return map(lambda x: int(x) - 1, input().split())

def LI():
    return input().split()

def LII():
    return list(map(int, input().split()))

def LFI():
    return list(map(float, input().split()))

fmax = lambda x, y: x if x > y else y
fmin = lambda x, y: x if x < y else y
isqrt = lambda x: int(math.sqrt(x))

'''
0 1 3 4
0 6 # 初始状态
0 4 # 交换
1 4 # 前指针移动
1 3 # 交换
2 3 # 前指针移动
tmp[k] < i,无法交换,后指针只能不动
3 3 # 前指针移动
4 3 # 前指针移动,i > j结束
'''

def solve():
    n = II()
    a = LII()
    c = II()

    tmp = []
    for i, x in enumerate(a):
        if x > c:
            tmp.append(i)

    ans = 0
    i, j = 0, n
    k = len(tmp) - 1
    while i <= j:
        if k >= 0 and i <= tmp[k]:
            j = tmp[k]
            k -= 1
        i += 1
        ans += 1

    print(ans)


t = 1
# t = II()
for _ in range(t):
    solve()
#每日一题挑战#
全部评论

相关推荐

专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务