【PAT】1046. Shortest Distanc(循环数组)+(总结高效代码)

虽然这个题目很水。可我还是绕的一批有可以总结的地方,缠丝在没用的代码里,柳神的代码真的有很多精巧的地方,我写的如此啰嗦导致bug频出,还是见得少练的少有点笨。

The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed to tell the shortest distance between any pair of exits.

Input Specification:

Each input file contains one test case. For each case, the first line contains an integer N (in [3,105]), followed by N integer distances D1 D2 ⋯ DN, where Di is the distance between the i-th and the (i+1)-st exits, and DN is between the N-th and the 1st exits. All the numbers in a line are separated by a space. The second line gives a positive integer M (≤104), with M lines follow, each contains a pair of exit numbers, provided that the exits are numbered from 1 to N. It is guaranteed that the total round trip distance is no more than 107.

Output Specification:

For each test case, print your results in M lines, each contains the shortest distance between the corresponding given pair of exits.

自己的不足:

  • 首先,不是记忆化数组,每次求距离是累加,这种低级错误不要再犯。TLE
  • 这和补码很像,求一个sum,但求单方向相减就可以了!所以舍去了乱七八糟的相加。
  • 也舍去了无用的数组

她的可取之处:

  •         if(left > right)swap(left, right);//都转为升序
    

【PAT】1046. Shortest Distanc(循环数组)+(总结高效代码)相关推荐

  1. 【测试点2超时问题】1046 Shortest Distance (20 分)_21行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 The task is really simple: given N exits on a highway which forms ...

  2. 【最新合集】PAT甲级最优题解(题解+解析+代码)

    以下每道题均是笔者多方对比后, 思考整理得到的最优代码,欢迎交流! 共同成长哇.可以和博主比拼一下谁刷的更快~ 欢迎收藏.欢迎来玩儿 PAT题解目录 题号 标题 题解 分类 使用算法 1001 A+B ...

  3. PAT甲级1046 Shortest Distance:[C++题解]前缀和

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 用前缀和快速求出一段的和.注意求两段,取最小值. ac代码 #include<bits/stdc++.h> using ...

  4. 【C++算法与数据结构学习笔记------用循环数组实现队列】

    照王晓东<数据结构>(C++语言版)上打的,以备留用. 1 #include <iostream> 2 using namespace std; 3 template<t ...

  5. 循环数组的最大子段和

    问题描述: N个整数组成循环序列,求这个序列的最大子段和. 例如:-2   11  -4  13  -5  -2    ANSWER: 20 解决: 解决这个问题需要有求解最大子段和的基础. 循环数组 ...

  6. 力扣【下一个更大元素】leetcode-503.下一个更大元素 Ⅱ:单调栈解法+循环数组解法

    题目: 思路与解法: 1.如果是暴力法,只需要遍历就可以了,但是那样的话时间复杂度就是O(N^2); 2.可以把这几个数字,抽象成为高度不一样的柱子: 3.寻找的过程,就是从当前柱子去看,被后面的哪一 ...

  7. 1050 循环数组最大子段和

    1050 循环数组最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该 ...

  8. 约瑟夫问题的学习(基于循环链表)以及基于循环数组

    这是17世纪法国数学家加斯帕在<数目中的游戏问题>讲的一个问题:15个教徒和15个非教徒在海上遇险,必须将一般的人投入海中,其他的人才能幸免于难.与实现各一个办法:30个人围成一个圈,从第 ...

  9. wx:for-item循环数组失败

    如果将wx:for = "{{list}}"换成wx:for-items="{{list}}":运行科一看到和wx:for = "{{list}}&q ...

  10. python变量/分支/循环/数组/列表/元组/序列

    最近比较流行python,于是我这种从不赶潮流的人也决定跟一把潮流.工作原因学习时间有限,好容易挤着时间看了一部分网上的视频,却被劝说没什么用处,我们就是靠java吃饭的.当然多学一种语言也不会有什么 ...

最新文章

  1. 算法学习之路|统计同成绩学生
  2. Struts——例子
  3. vue 实例数据绑定 指令 事件
  4. Inception Net V1总结
  5. 软连接与硬链接的区别,以及如何删除软链接
  6. mysql 事务 返回插入的值_深入理解mysql事务:事务机制的实现原理
  7. [Rethinking on Multi-Stage Networks for Human Pose Estimation] 论文解读
  8. linux输出文件内容ssh,Linux ssh ubuntu终端把运行过程输出到文件?
  9. Linux - ATT汇编基础
  10. 【5G系列】Network Slicing学习总结(4)
  11. 计算机网页外文文献图书,免费外文文献网站.doc
  12. [转] 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
  13. Spring框架学习第二部分
  14. 数学笔记25——弧长和曲面面积
  15. Linux CPU使用率超过100%的原因
  16. oracle中的递归查询
  17. http协议1.x/2.x区别
  18. 网易2018校园招聘:字符串碎片 [python]
  19. iOS10 UICollectionView不调用cellForItemAtIndexPath
  20. 基于NCF的多模块协同实例

热门文章

  1. c语言常用颜色种类,C语言常用颜色种类(国外英语资料).doc
  2. Angular—生命周期函数
  3. SDUT—Python程序设计实验五(列表与元组)
  4. ospfdr选举规则_DR/BDR详细选举过程
  5. win10去掉快捷方式小箭头_强迫症狂喜!一招去除Win10桌面图标小箭头
  6. 第4.1章 飞鸟集爬虫采用结巴分词随机排序存储
  7. 只因写了一段爬虫,公司200多人被抓!
  8. 吴恩达老师深度学习课程完整笔记
  9. ios带嗅探器的浏览器_浏览器嗅探器——WhichBrowser
  10. c++的size_t