CF803B Distances to Zero(模拟+思维)

思路:

第一眼-->"暴力"!,一看数据,不行,好好好,下播!(tao~)

后来认真一想其实我们只需要分别求出当前位置单单离左右两边的最近0位置,然后再从左右中一个min最小值即可啦~

复杂度:O(2*N)稳过!

细节请看下方代码:

ACcode:

复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+10;
const int inf=0x3f3f3f3f;
int n,a[N],b[N];
void solve() {
	cin>>n;
	int j=-1;
	for(int i=0; i<n; i++) cin>>a[i];
	//从左跑一遍
	for(int i=0; i<n; i++) {
		if(a[i]==0)j=i;
		if(j!=-1)b[i]=i-j;
		else b[i]=inf;
		}
		j=-1;
		for(int i=n-1;i>=0;i--){
			if(a[i]==0)j=i;
			if(j!=-1)b[i]=min(b[i],j-i);
		}
		for(int i=0;i<n;i++) cout<<b[i]<<" ";
}
signed main() {
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	int t=1;
//	cin>>t;
	while(t--) {
		solve();
	}
	return 0;
}

okk

相关推荐
Sheep Shaun14 小时前
深入理解红黑树:从概念到完整C++实现详解
java·开发语言·数据结构·c++·b树·算法
Dave.B14 小时前
:vtkBooleanOperationPolyDataFilter 布尔运算全解析
算法·vtk
楼田莉子14 小时前
CMake学习:入门及其下载配置
开发语言·c++·vscode·后端·学习
易晨 微盛·企微管家14 小时前
2025企业微信AI智能机器人实战指南:3步实现客服自动化
大数据·人工智能·算法
jiaguangqingpanda14 小时前
Day26-20260122
java·算法·排序算法
夜月yeyue14 小时前
VFS (虚拟文件系统) 核心架构
linux·c++·单片机·嵌入式硬件·架构
secondyoung14 小时前
队列原理与实现全解析
c语言·数据库·mysql·算法·队列
kuiini14 小时前
scikit-learn 常用算法与评估方法【Plan 7】
python·算法·scikit-learn
旭意14 小时前
数据结构-红黑树和set
数据结构·c++·算法·蓝桥杯
宵时待雨14 小时前
数据结构(初阶)笔记归纳7:链表OJ
c语言·开发语言·数据结构·笔记·算法·链表