PAT刷题注意点

本文汇总了参加PAT算法竞赛时的实用技巧,包括C++与C语言编译器的使用差异、链表模拟时的地址类输出控制、数值位数补充、unordered_map的效率优势、循环体赋值注意事项、数的范围与数量考量、sort()函数正确用法、缓存清理、输入读取技巧等。这些技巧旨在帮助参赛者避免常见错误,提升算法设计与实现效率。

1、gets()已经不被PAT中C++编译器支持,但是C语音编译器未受影响,1. 把头文件改成C语言格式,用C语音编译器即可通过。
.用cin.getline();
例题可见【PAT B1009】 说反话
改法可见 PAT入门题1——入门模拟

2、模拟链表时,地址类输出要控制输出位数。

printf("%05d",example);

PAT例题A1032 Sharing
代码:模拟链表、静态链表及PAT例题A1032 Sharing

3.、对于n位数的问题,有要求的,位数不够要补0;(考虑边界点0000 1000)
PAT例题A1152 Google Recruitment

//c++写法
 cout<<setw(num)<<setfill('0')<<n<<endl;

PAT A 1121 Damn Single (25分)
4、unordered_map<>mp 替代map<>mp 可以节省时间
5、循环体每次赋初值
除非确定数,否则都用变量表示。
6、注意数的个数与数的范围
PAT(A) – 2018春季考试-甲级 1144 The Missing Number (20分)
7、sort()排序参数问题

sort(&v[0],&v[n]);  // 第二个参数要指向尾元素的下一个地址

1125 Chain the Ropes (25分) 第二个参数错误测试样例部分通过

sort(v.begin(), v.end());  //vector
sort(stu, stu+num); //stu结构体数组

8、有的时候要清缓存

getchar();
getline(cin,s);

9、for (i = 0; i < n; i++) scanf("%d", &v[i]); //结束后 i=n;
10、for循环分开打印输出 注意临界点是否判定

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隔壁de小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值