开关电灯-度小满春招基础架构研发工程师第2批

度小满校招笔试真题_Java工程师、C++工程师_牛客网

题目分析:我们只关注第一次熄灭,熄灭区间是[i,n],所以后续再出现的值如果大于等于i是不起任何作用的。每次读取开关编号x,如果前面有比x小的编号,x就不起作用。

模拟即可,复杂度O(m+n)

cpp 复制代码
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
int v[100005];
int main()
{
    ios::sync_with_stdio(0),cin.tie(0);
    int i,j,x,n,m,minv;
    cin>>n>>m;
    minv=n+1;
    for(i=1; i<=m; i++)
    {/**< 关灯的逻辑:如果前面有比x小的值,哪么[x,n]所在的灯已经打开了 */
        cin>>x;
        if(x<minv)
        {
            for(j=x; j<minv; j++)
                v[j]=i;
            minv=x;
        }
    }
    for(i=1;i<=n;i++)
        cout<<v[i]<<' ';
    return 0;
}
相关推荐
纠结哥_Shrek30 分钟前
AI常见的算法
人工智能·算法
Oracle_66633 分钟前
C语言------数组从入门到精通
c语言·算法·排序算法
南宫生1 小时前
力扣动态规划-15【算法学习day.109】
java·学习·算法·leetcode·动态规划
ThE.wHIte.1 小时前
Leetcode 131 分割回文串(纯DFS)
算法·leetcode·职场和发展
xiaoshiguang31 小时前
LeetCode:96.不同的二叉搜索树
java·算法·leetcode·动态规划
hamster20211 小时前
力扣【416. 分割等和子集】详细Java题解(背包问题)
java·算法·leetcode
纠结哥_Shrek2 小时前
Q学习 (Q-Learning):基于价值函数的强化学习算法
学习·算法
charlie1145141912 小时前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(动态菜单组件实现)
c语言·驱动开发·stm32·单片机·算法·教程·oled
cccc楚染rrrr3 小时前
572. 另一棵树的子树
java·数据结构·算法