阿里内推题——物流派送员送快递最短路径问题
題目:
如下圖,某物流派送員p,需要給 a、b、c、d. 4個快遞點派送包裹,請問派送員需要選擇什么樣的路線,才能完成最短路程的派送。假設如圖派送員的起點坐標(0,0),派送路線只能沿著圖中的方格邊行駛,每個小格都是正方形,且邊長為1,如p到d的距離就是4。隨機輸入n個派送點坐標,求輸出最短派送路線值(從起點開始完成n個點派送并回到起始點的距離)。
這里寫圖片描述
輸入示例:
4
2,2
2,8
4,4
7,2
輸出:
30
分析:這道題我想到的辦法是將所有送貨點組合的路徑都計算一次長度,取其中的最小即可,而如何獲取所有的路徑組合呢?其實也就是將所有的送貨點做一次全排列。最后記錄下所有的長度取其最短即可【這里需要注意的是,我們取長度的時候需要計算回到原地的路徑】。
下面貼一個取全排列的算法(因為此題的核心是基于全排列算法)
import java.util.Arrays;
public class AllRange {
// 需要被全排列的數(shù)組
private static String[] arr = "a,b,c,d".split(",");
public static void main(String[] args) {
rangeAll(arr, 0);
}
/**
* 全排列指定數(shù)組
*
* @param arr
* 需要被全排列的數(shù)組
總結
以上是生活随笔為你收集整理的阿里内推题——物流派送员送快递最短路径问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux常用命令大全--有关磁盘空间的
- 下一篇: idea main和System快捷键