本文借助PAT的甲级和乙级题库进行算法学习,目录结构和代码有部分参考算法笔记,在算法笔记给的参考代码上改进了很多,有些题目使用了原创的更简单的解题思路,也有很多题目本人采取了多种解题方式供读者参考。

复试上机算法学习目录

1.入门模拟

1.1简单模拟

Title

题目

分值

参考代码

​B1001​

害死人不偿命的(3n+1)猜想

15

​C++​

​B1011​

A+B 和 C

15

​C++​

​B1016​

部分A+B

15

​C++​

​B1026​

程序运行时间

15

​C++​

​B1046​

划拳

15

​C++​

​B1008​

数组元素循环右移问题

20

​C++​

​B1012​

数字分类

20

​C++​

​B1018​

锤子剪刀布

20

​C++​

​A1042​

Shuffling Machine

20

​C++​

​A1046​

Shortest Distance

20

​C++​

​A1065​

A+B and C

20

​C++​

​B1010​

一元多项式求导

25

​C++​

​A1002​

A+B for Polynomials

25

​C++​

​A1009​

Product of Polynomials

25

​C++​

1.2查找元素

Title

题目

分值

参考代码

​B1041​

考试座位号

15

​C++​

​B1004​

成绩排名

20

​C++​

​B1028​

人口普查

20

​C++​

​B1032​

挖掘机技术哪家强

20

​C++​

​A1011​

World Cup Betting

20

​C++​

​A1006​

Sign In and Sign Out

25

​C++​

​A1036​

Boys VS Girls

25

​C++​

1.3图形输出

Title

题目

分值

参考代码

​B1036​

跟奥巴马一起编程

15

​C++​

​B1027​

打印沙漏

20

​C++​

​A1031​

Hello World for U

20

​C++​

1.4进制转换

Title

题目

分值

参考代码

​B1022​

D进制的A+B

20

​C++​

​B1037​

在霍格沃茨找零钱

20

​C++​

​A1019​

General Palindromic Number

20

​C++​

​A1027​

Colors in Mars

20

​C++​

​A1058​

A+B in Hogwarts

20

​C++​

1.5字符串处理

Title

题目

分值

参考代码

​B1006​

换个格式输出整数

15

​C++​

​B1021​

个位数统计

15

​C++​

​B1031​

查验身份证

15

​C++​

​B1002​

写出这个数

20

​C++​

​B1009​

说反话

20

​C++​

​B1014​​​/​​A1061​

福尔摩斯的约会

20

​C++​

​B1024​​​/​​A1073​

科学计数法

20

​C++​

​B1048​

数字加密

20

​C++​

​A1001​

A+B Format

20

​C++​

​A1005​

Spell It Right

20

​C++​

​A1035​

Password

20

​C++​

​A1077​

Kuchiguse

20

​C++​

​A1082​

Read Number in Chinese

25

​C++​

2.算法初步

2.1排序

Title

题目

分值

参考代码

​B1015​​​/​​A1062​

德才论

25

​C++​

​A1012​

The Best Rank

25

​C++​

​A1016​

Phone Bills

25

​C++​

​A1025​

PAT Ranking

25

​C++​

​A1028​

List Sorting

25

​C++​

​A1055​

The World’s Richest

25

​C++​

​A1075​

PAT Judge

25

​C++​

​A1083​

List Grades

25

​C++​

​A1080​

Graduate Admission

30

​C++​

​A1095​

Cars on Campus

30

​C++​

2.2散列

Title

题目

分值

参考代码

​B1029​​​/​​A1084​

旧键盘

20

​C++​

​B1033​

旧键盘打字

20

​C++​

​B1038​

统计同成绩学生

20

​C++​

​B1039​​​/​​A1092​

到底买不买

20

​C++​

​B1042​

字符统计

20

​C++​

​B1043​

输出PATest

20

​C++​

​B1047​

编程团体赛

20

​C++​

​A1041​

Be Unique

20

​C++​

​A1050​

String Subtraction

20

​C++​

​B1005​

继续(3n+1)猜想

25

​C++​

​A1048​

Find Coins

25

​C++​

2.3贪心

Title

题目

分值

参考代码

​B1023​

组个最小数

20

​C++​

​B1020​​​/​​A1070​

月饼

25

​C++​

​A1033​

To Fill or Not to Fill

25

​C++​

​A1037​

Magic Coupon

25

​C++​

​A1067​

Sort with Swap(0, i)

25

​C++​

​A1038​

Recover the Smallest Number

30

​C++​

2.4二分

Title

题目

分值

参考代码

​B1030​​​/​​A1085​

完美数列

25

​C++​

​A1010​

Radix

25

​C++​

​A1044​

Shopping in Mars

25

​C++​

​A1048​

Find Coins

25

​C++​

2.5two pointers

Title

题目

分值

参考代码

​B1030​​​/​​A1085​

完美数列

25

​C++​

​B1035​​​/​​A1089​

Insert or Merge

25

​C++​

​A1029​

Median

25

​C++​

​A1048​

Find Coins

25

​C++​

​A1044​

Shopping in Mars

25

​C++​

2.6其他技巧与算法

Title

题目

分值

参考代码

​B1040​​​/​​A1093​

有几个PAT

25

​C++​

​B1045​​​/​​A1101​

快速排序

25

​C++​

​B1008​

数组元素循环右移问题

20

​C++​

3.数学问题

3.1简单数学

Title

题目

分值

参考代码

​B1003​

我要通过!

20

​C++​

​B1019​​​/​​A1069​

数字黑洞

20

​C++​

​B1049​​​/​​A1104​

数列的片段和

20

​C++​

​A1008​

Elevator

20

​C++​

​A1049​

Counting Ones

30

​C++​

3.2最大公约数与最小公倍数

Title

题目

分值

参考代码

​B1008​

数组元素循环右移问题

20

​C++​

3.3分数的四则运算

Title

题目

分值

参考代码

​A1081​

Rational Sum

20

​C++​

​B1034​​​/​​A1088​

有理数四则运算

20

​C++​

3.4素数

Title

题目

分值

参考代码

​B1007​

素数对猜想

20

​C++​

​B1013​

数素数

20

​C++​

​A1015​

Reversible Primes

20

​C++​

​A1078​

Hashing

25

​C++​

3.5质因子分解

Title

题目

分值

参考代码

​A1096​

Consecutive Factors

20

​C++​

​A1059​

Prime Factors

25

​C++​

3.6大整数运算

Title

题目

分值

参考代码

​B1017​

A除以B

20

​C++​

​A1023​

Have Fun with Numbers

20

​C++​

​A1024​

Palindromic Number

25

​C++​

4.C++标准模板库STL的使用

4.1vector

Title

题目

分值

参考代码

​A1039​

Course List for Student

25

​C++​

​A1047​

Student List for Course

25

​C++​

4.2set

Title

题目

分值

参考代码

​A1063​

Set Similarity

25

​C++​

4.3string

Title

题目

分值

参考代码

​A1060​

Are They Equal

25

​C++​

4.4map

Title

题目

分值

参考代码

​B1044​​​/​​A1100​

火星数字

20

​C++​

​A1054​

The Dominant Color

20

​C++​

​A1071​

Speech Patterns

25

​C++​

​A1022​

Digital Library

30

​C++​

5.数据结构

5.1栈和队列

Title

题目

分值

参考代码

​A1051​

Pop Sequence

25

​C++​

​A1056​

Mice and Rice

25

​C++​

5.2链表处理

Title

题目

分值

参考代码

​B1025​​​/​​A1074​

反转链表

25

​C++​

​A1032​

Sharing

25

​C++​

​A1052​

Linked List Sorting

25

​C++​

​A1097​

Deduplication on a Linked List

25

​C++​

6.两个搜索算法

6.1深度优先搜索(DFS)

Title

题目

分值

参考代码

​A1103​

Integer Factorization

30

​C++​

6.2广度优先搜索(BFS)

Title

题目

分值

参考代码

​A1091​

Acute Stroke

30

​C++​

7.树的相关算法

7.1二叉树的遍历

Title

题目

分值

参考代码

​A1020​

Tree Traversals

25

​C++​

​A1086​

Tree Traversals Again

25

​C++​

​A1102​

Invert a Binary Tree

25

​C++​

7.2树的遍历

Title

题目

分值

参考代码

​A1079​

Total Sales of Supply Chain

25

​C++​

​A1090​

Highest Price in Supply Chain

25

​C++​

​A1094​

The Largest Generation

25

​C++​

​A1106​

Lowest Price in Supply Chain

25

​C++​

​A1004​

Counting Leaves

30

​C++​

​A1053​

Path of Equal Weight

30

​C++​

7.4二叉查找树

Title

题目

分值

参考代码

​A1043​

Is It a Binary Search Tree

25

​C++​

​A1064​

Complete Binary Search Tree

30

​C++​

​A1099​

Build A Binary Search Tree

30

​C++​

7.5平衡二叉树

Title

题目

分值

参考代码

​A1066​

Root of AVL Tree

25

​C++​

7.6并查集和堆

Title

题目

分值

参考代码

​A1107​

Social Clusters

30

​C++​

​A1013​

Battle Over Cities

25

​C++​

​A1098​

Insertion or Heap Sort

25

​C++​

8.图的相关算法

8.1图的遍历

Title

题目

分值

参考代码

​A1013​

Battle Over Cities

25

​C++​

​A1021​

Deepest Root

25

​C++​

​A1034​

Head of a Gang

30

​C++​

​A1076​

Forwards on Weibo

30

​C++​

8.2最短路径

Title

题目

分值

参考代码

​A1003​

Emergency

25

​C++​

​A1018​

Public Bike Management

30

​C++​

​A1030​

Travel Plan

30

​C++​

​A1072​

Gas Station

30

​C++​

​A1087​

All Roads Lead to Rome

30

​C++​

9.动态规划

9.1子序列问题

Title

题目

分值

参考代码

​A1007​

Maximum Subsequence Sum

25

​C++​

​A1045​

Favorite Color Stripe

30

​C++​

​A1040​

Longest Symmetric String

25

​C++​

9.2背包问题

Title

题目

分值

参考代码

​A1068​

Find More Coins

30

​C++​

10.扩展

10.1分块思想和树状数组

Title

题目

分值

参考代码

​A1057​

Stack

30

​C++​

10.2快乐模拟

Title

题目

分值

参考代码

​B1050​​​/​​A1105​

螺旋矩阵

25

​C++​

​A1017​

Queueing at Bank

25

​C++​

​A1014​

Waiting in Line

30

​C++​

​A1026​

Table Tennis

30

​C++​

11.总结

总结

描述

​问题篇​

回答PAT或OJ平台常见的问题

​技巧篇​

记录PAT或OJ平台常见的技巧

​STL库​

总结STL库的常见模板和函数