我有一个任务:一辆卡车从位于(0,0)点的仓库出发。
给List<Point> points
一个函数,等待卡车,N
值代表卡车必须到达的点数,例如N <= points.size()
。卡车不必绕开所有要点,只需N
。
返回卡车必须走的最短路径List<Point>
的大小N
。
public List<Point> route(final List<Point> points, final int N);
@AllArgsConstructor
@Getters
public final class Point {
private final int x;
private final int y;
}
如果N = 2
,请看这张图片
必须选择POINT_2和POINT_3,因为在这种情况下,叉车可覆盖2个单元。选择的点不必等于最接近起点的点。
如果选择了POINT_1和POINT_2,则卡车将以1个单位行驶到POINT_1,然后以2个单位行驶到POINT_2,总计为3个单位。