百度--度度熊回家

一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。
但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离? 
输入描述:

输入一个正整数N, N <= 50。 
接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小于等于100
输出描述:
输出一个整数表示度度熊最少需要走的距离。
输入例子:
4
1 4 -1 3
输出例子:
4

这道题,就是除了第一个坐标点和最后一个坐标点之外,其余的点可以选择一个点忽略不走。那么就可以有N-2种走法。

#include <iostream>
#include <algorithm>
#include "string.h"
#include "stdio.h"
#include <vector>
#include<utility>
#include "math.h"
#include <set>
using namespace std;

int main()
{
    int n;
    cin>>n;

    int min_dis=-1;
    vector<int> arr;
    for(int i=0;i<n;i++)
    {
        int m;
        cin>>m;
        arr.push_back(m);
    }

    for(int i=1;i<n-1;i++)
    {
        int a=0;
        int j=1;
        int distance=0;
        for(;j<n;j++)
        {
            //这里的意思就是,arr[i]为这N-2中的要被剔除的点,如果arr[j]==arr[i],则跳过。
            if(j==i)
            {
                continue;
            }
            distance+=abs(arr[j]-arr[a]);
            a=j;
            cout<<distance<<endl;
        }
        if(min_dis == -1)
        {
            min_dis = distance;
        }
        else if(distance<min_dis)
            min_dis = distance;

    }
    cout<<min_dis<<endl;
    return 0;
}