Shortest Distamce(最短路径java)

Shortest Distamce(最短路径java)

有N个节点围成一个圈,相邻两个点之间的距离已知,且每次只能移动到相邻点。然后给出M个询问,每个询问给出两个数字A和B即节点编号(1<=A,B<=N),求从A号节点到B号节点的最短距离。
输入样例:

5 1 2 4 14 9
3
1 3 
2 5
4 1

输出样例:

3
10 
7 

代码如下:

package 算法笔记;

import java.util.Scanner;

//Shortest Distamce(最短路径)
public class test0003 {
	public static void main(String [] args)
	{
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int []a=new int[n+1];
		int sum=0;
		int max=100005;
		int dis[]=new int[max];
		for(int i=1;i<=n;i++)
		{
			a[i]=sc.nextInt();
			sum+=a[i];
			dis[i]=sum;
		}
		int m=sc.nextInt();
		int [] left=new int[m];
		int [] right=new int[m];
		//int [] temp=new int[m]; 
		for(int i=0;i<m;i++)
		{
			left[i]=sc.nextInt();
			right[i]=sc.nextInt();
		}
		for(int i=0;i<m;i++)
		{
			if(left[i]>right[i])
			{
				int t=0;
				t=left[i];
				left[i]=right[i];
				right[i]=t;
			}
			int temp=dis[right[i]-1]-dis[left[i]-1];
			System.out.printf("%d\n",Math.min(temp, sum-temp));
		}
	
	}
}

调试结果如下:
Shortest Distamce(最短路径java)