1045 快速排序 (25 分) 详解+坑点

PAT (Basic Level) Practise (中文)1045. 快速排序(25) C语言 1045. 快速排序(25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放 阅读详情

著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?

例如给定 $N = 5$, 排列是1、3、2、4、5。则:

  • 1 的左边没有元素,右边的元素都比它大,所以它可能是主元;
  • 尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元;
  • 尽管 2 的右边元素都比它大,但其左边的 3 比它大,所以它不能是主元;
  • 类似原因,4 和 5 都可能是主元。

因此,有 3 个元素可能是主元。

输入格式:

输入在第 1 行中给出一个正整数 N(≤10​5​​); 第 2 行是空格分隔的 N 个不同的正整数,每个数不超过 10​9​​。

输出格式:

在第 1 行中输出有可能是主元的元素个数;在第 2 行中按递增顺序输出这些元素,其间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

5
1 3 2 4 5

输出样例:

3
1 4 5

主元的两个条件:1.排序后位置不变

                             2.是当前的最大值

满足这两个条件,便可以确定是主元。

 

坑点:一定要换行,即使主元个数为0。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,max=0;
	cin>>n; 
	vector<int>v1(n),v2(n),v3;
	for(int i=0;i<n;i++)scanf("%d",&v1[i]);
	v2 = v1;
	sort(v2.begin(),v2.end());
	for(int i=0;i<n;i++){
		if(v1[i]==v2[i]&&v2[i]>max){
			v3.push_back(v2[i]);
		}
		if(v1[i]>max)max=v1[i];
	}
	cout<<v3.size()<<endl;
	for(int i=0;i<v3.size();i++){
		printf("%s%d",i==0?"":" ",v3[i]);
		
	}
	cout<<"\n";
    return 0;
}

 

 

Rokid眼镜高精度图像识别的五大工程破局点 图像识别是AR交互的基础能力,其核心在于将现实图像映射为可计算的数字特征,并通过几何建模解算空间姿态。在专用AR眼镜场景中,该过程面临光学畸变、传感器时序错位、低延迟跟踪与人因适配等复合挑战。尤其在工业现场,Rokid Max系列的鱼眼镜头畸变、IMU-视觉异步采样、窄FOV下快速眼动等物理约束,使传统基于AR Foundation或OpenCV的识别方案失效。本文聚焦真实部署中的关键瓶颈,涵盖实时反畸变纹理渲染、原生SDK直调优化、端侧轻量CNN模型(TinyImageNet-Rokid)、IMU-视觉紧 阅读详情

相关推荐

【OpenArm|Control】openarm机械臂ROS2仿真控制

openarm_ros2 存储库包含用于 ros2_control 的包集合。 它抽象化了硬件控制,将手臂公开为接收位置、速度和扭矩命令并输出关节状态的接口。 openarm_bringup 包提供了通过包与 ROS2 控制框架集成的启动文件。该软件包提供启动文件和配置,用于启动硬件接口、加载控制器以及将物理臂连接到 ROS2 生态系统。启动后,您可以使用标准 ROS2 控制工具和接口来命令手臂并接收反馈。openarm_bringup bringup 包支持模拟硬件(用于模拟/测试)和通过硬件插件的真实

ai领域探索者,欢迎一起交流,目前从事具身智能行业。 2958

1045 快速排序(25 分)

注意点: 测试点2  格式错误的原因是:最后要加cout&lt;&lt;endl  (莫名其妙。。。) 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定 $N = 5$, 排列是1、3、2、4、5。...

(为大佬)递茶员 734

基于资源预测的Agent弹性伸缩:在成本与响应延迟间寻找最佳平衡点

手动伸缩:完全由运维人员人工调整副本数或服务器数量,效率极低,现在基本只用于极小规模的业务。反应式伸缩:基于当前实时监控指标触发伸缩规则,比如CPU利用率超过70%就加2个副本,是目前应用最广泛的方案,典型代表是K8s HPA、KEDA。预测式伸缩:基于历史时序数据预测未来的负载,提前进行伸缩,解决反应式伸缩的滞后性问题,典型代表是AWS Predictive Scaling、阿里云预测式HPA。智能Agent伸缩。

SuperAGI2025 134

[PAT乙级]1045 快速排序 (思路+精简代码)

1045 快速排序 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则: 1 的左边没有元素,右边的元素都比它大,所以它可能是主元; 尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元; 尽管 2 的右边元素都比它大,但其左边的 3 比它大

分享XCPC常用算法和相关技巧 497

用Arduino Mega2560和TB6612驱动MG513电机,我踩过的坑和最佳实践

本文详细介绍了使用Arduino Mega2560和TB6612驱动模块控制MG513直流电机的实战经验,包括硬件连接、PWM配置、编码器信号处理等关键技巧。通过优化电源系统、信号线布局和软件控制算法,有效解决了电机抖动、转速不稳等常见问题,为机器人底盘和自动化项目提供了可靠解决方案。

weixin_42520573的博客 202

图神经网络实战(5)——常用图数据集

Cora 和 Facebook Page-Page 是图神经网络领域中经常使用的两个基准图数据集,通常用来比较不同模型的性能。在本节中,介绍了如何使用 PyTorch Geometric 库提供的数据集类加载 Cora 和 Facebook Page-Page 数据集,并探索了两个数据集的主要特征。

盼小辉丶的博客 1万+

1045. 快速排序(附详细注释,逻辑分析)

写在前面 vector容器存储正整数 判断逻辑 正序排序,比较前后次序是否变化 不变化,输出结果。16分 局部判断是否为最大,最大则输出,+5分 末尾增加换行符,+4分 最后,得16分比较简单,5分钟a题 满分比较困难,20分钟+好运气 测试用例 input: 5 1 3 2 4 5 output: 3 1 4 5 input: 5 3 2 1 4 5 output: 1 ...

kngines 411

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 2199

PTA 1045 快速排序 (c语言)

1045 快速排序 (25 分) 分析:我觉得很多人应该和我一样,上来直接暴力,用双重循环查找,然后发现三个点超时了。 然后这个题有个窍门(我也是看的一个大神的),就是先从从小到大排序。如果排序前某个数的下标和排序后它的下标一样,而且比他左边所有数中最大的数还要大,则证明这个数是主元(可以自己想想为什么); 代码如下: #include<stdlib.h> int cmp(const...

qq_44622401的博客 1511

从 SAP ABAP 到 S/4HANA,SAML 2.0 单点登录到底是怎么跑起来的

在很多 SAP 项目里,SSO 不是一个锦上添花的功能,而是系统能不能顺利上线的基本门槛。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1050

【AI智能体】飞书 AI 智能客服机器人搭建与使用实战操作详解

飞书 AI 智能客服机器人搭建与使用实战操作详解

congge 6053

1045 快速排序 (25 分)

1045 快速排序 (25 分) C++ 实现 and Python实现。 题意描述: 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则: 1 的左边没有元素,右边的元素都比它大,所以它可...

花花生的博客 1240

Calibre LVS 问题解析

LVS常见问题与解决办法

m0_61544122的博客 2万+

1045 快速排序 (25 分)

1045快速排序(25分) 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定 $N = 5$, 排列是1、3、2、4、5。则: 1 的左边没有元素,右边的元素都比它大,所以它可能是主元; ...

韩旭051的博客 2996

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

PAT 乙级 1045 快速排序 (25 分)

PAT 乙级 1045 快速排序 (25 分) 原题链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805278589960192 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整...

博客 327

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

PAT 乙级 1045 快速排序 (25分)

1045 快速排序 (25分) 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则: 1 的左边没有元素,右边的元素都比它大,所以它可能是主元; ...

一起加油 4696

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

1045 快速排序 (25分)

文章目录1 题目2 解析2.1 题意2.2 思路3 参考代码 1 题目 1045 快速排序 (25分) 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定 N=5N = 5N=5, 排列是1、3、2、4...

韩江雪de 小屋 435

1045 快速排序 (25 分)

1045 快速排序 (25 分) 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则: 1 的左边没有元素,右边的元素都比它大,所以它可能是主元; ...

丁世杰的博客 664

PTA 1045 快速排序 (25 分)

code1 12分 #include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { int n; scanf("%d", &n); vector<int>v(n),s; for (int i = 0; i < n;...

weixin_43725617的博客 471

1045 快速排序 (25分) - 有点 DP

题目链接:1045 快速排序 (25分) 题目 解题思路 这个题有点动态规划的意思。 主元的意思就是,这个数的左边全是小于它的数,右边全是大于它的数。这样在快排的时候它就有可能作为主元,就是不动的那个。 将数按顺序存起来 从前往后遍历,将前面的最大的数存起来与当前数比较,如果这个数前面的最大值小于当前值,说明这个数前面都是小于它的数 从后往前遍历,将后面的最小的数存起来与当前数比较,如果这个数...

qq_37504214的博客 251

PAT 1045 快速排序 (25分)(Java)

题目描述:   著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?   例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则:   1 的左边没有元素,右边的元素都比它大,所以它可能是主元; 尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元; 尽管 2 的右边元素都比它大,但其左边的 3 比

HenryLei的博客 5万+

1045 快速排序 (25 分)

题目链接:1045 快速排序 (25 分) 这道题目困扰我好久了。我知道自己数据结构与算法的基础知识没有掌握好。这是其中内部排序的 快速排序。 我刚开始的思路是遍历整个数组,针对每一个元素判断其是否满足主元的条件,即 当前元素大于之前元素的最大值&&当前元素小于之后元素的最小值。确定之前元素的最大值比较容易, 遍历时每次刷新最大值即可,但是之后元素的最小值缺难到了我...

weixin_30379911的博客 102
上一篇: 1044 火星数字 (20 分)
下一篇: 1046 划拳 (15 分)
Linuxsen
博客等级 码龄9年 4粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值