面試題之度度熊回家

2021-10-04 12:43:55 字數 995 閱讀 2329

乙個數軸上共有n個點,第乙個點的座標是度度熊現在位置,第n-1個點是度度熊的家。現在他需要依次的從0號座標走到n-1號座標。

但是除了0號座標和n-1號座標,他可以在其餘的n-2個座標中選出乙個點,並直接將這個點忽略掉,問度度熊回家至少走多少距離?

輸入描述:

輸入乙個正整數n, n <= 50。

接下來n個整數表示座標,正數表示x軸的正方向,負數表示x軸的負方向。絕對值小於等於100

輸出描述:

輸出乙個整數表示度度熊最少需要走的距離。

輸入例子1:

41 4 -1 3

輸出例子1:

4

在若干點中選擇一點,使全程的路程最小。其實說白了就是選擇一點i,使其縮小的距離最大,即原來的距離是dis(i-1,i)+dis(i,i+1),去掉點i之後的距離是dis(i-1,i+1),只要遍歷一遍,求出每個點上面兩個距離的差值,求最大值,就可以確定要忽略哪個點了

#include

#include

using

namespace std;

#include

intmain()

int max=0;

int index=-1

;int yuan;

int hou;

for(

int i=

1;i1;i++)}

if(index!=-1

)int sum=0;

for(

int i=

0;isize()

-1;i++

) cout

}

度度熊回家

度度熊回家 時間限制 1秒 空間限制 32768k 乙個數軸上共有 n個點,第乙個點的座標是度度熊現在位置,第 n 1個點是度度熊的家。現在他需要依次的從 0號座標走到 n 1號座標。但是除了 0號座標和 n 1號座標,他可以在其餘的 n 2個座標中選出乙個點,並直接將這個點忽略掉,問度度熊回家至少...

度度熊回家

輸入乙個正整數n,n 50。接下來n個整數表示座標,正數表示x軸的正方向,負數表示x軸的負方向。絕對值小於等於100輸出描述 輸出乙個整數表示度度熊最少需要走的距離。輸入例子 4 1 4 1 3輸出例子 4思路 這題的關鍵在如何找到可以去除的那一點。考察連續的三個點,若三點的值都是遞增的,如,這樣,...

度度熊回家 (模擬)

思路 先計算出從第0個座標到第n 1個座標的距離,然後列舉忽略 1 n 2 的點,直接可以得到需要走的距離。複雜度o n 當然暴力列舉再重新計算也是可以ac的,複雜度o n2 ac include include using namespace std define inf 0x3f3f3f3f c...