2018年大二暑假PAT算法笔记心得 第三章 入门篇(1)入门模拟

   序 :

    刚刚接触PAT乙级,对于乙级算法题还是有思路,但是却不成熟,与高手的代码相比,思路不够简洁,不过也正常,慢慢修炼吧。以下为 get到的一些思路,想法,代码模块,以为己用。

thought:

    ①:

    对于一个对象,例如:PAT b1012里的A1,A2,A3,A4,A5, 其都有共同两个关键数据即count和ans,为了避免定义多个变量的麻烦,于是定义了一个count[5]和ans[5],用来存放数据;

    再如:PATb1018里的甲和乙,都有各自的胜负平数需要记录,于是定义一个times_A{3},times_B{3}来记录其各自的胜负平数,从而避免了在分别定义胜负平的变量的麻烦。

code:

    ①:

    对于一个对象,例如一个队列,或一个数组,假设有两个位置分别为L1和L2,如何表示L1在L2的左边,右边,同一点呢?

    以数组为例:a[3],Len = 3,a[L1] , a[L2],假设L1与L2相邻,那么 (L1 + 1 )% len == L2 即说明 L1在L2的左边,(L2 + 1 )% len == L1,即说明L1在L2的右边,L1 == L2即说明在同一点。当我们赋予L1和L2的顺序一个特定意义时,我们这个想法也许能有用。

    以队列为例:front和rear,假设这个队列的len = 3;要如何来重复使用这个队列来达到节约资源的目的呢?

rear++ % len  ,当rear == len + 1时 代表这个队列已经满了,那么回到队列的首部重新开始新的数据写入(覆盖)。

    

猜你喜欢

转载自blog.csdn.net/qq_40696484/article/details/81007400
今日推荐