From 4618bbf913912f85ee197ccd10644df29ad2f287 Mon Sep 17 00:00:00 2001
From: jianghaiyue <jianghaiyue@zkyt.com>
Date: 星期一, 10 十一月 2025 10:33:52 +0800
Subject: [PATCH] 优化更新
---
algo-zkd/src/main/java/com/algo/service/AStarPathPlanner.java | 17 +++--------------
1 files changed, 3 insertions(+), 14 deletions(-)
diff --git a/algo-zkd/src/main/java/com/algo/service/AStarPathPlanner.java b/algo-zkd/src/main/java/com/algo/service/AStarPathPlanner.java
index 486c246..26c28ef 100644
--- a/algo-zkd/src/main/java/com/algo/service/AStarPathPlanner.java
+++ b/algo-zkd/src/main/java/com/algo/service/AStarPathPlanner.java
@@ -621,11 +621,7 @@
}
/**
- * 浼樺寲璺緞锛氬幓闄ょ┖闂翠笂鐨勯噸澶嶇偣锛堥伩鍏嶆潵鍥炶蛋锛�
- * 妫�娴嬪苟绉婚櫎 A->B->A 妯″紡鐨勬潵鍥炶蛋锛岄伩鍏嶄笉蹇呰鐨勭粫琛�
- *
- * @param codeList 鍘熷璺緞浠g爜鍒楄〃
- * @return 浼樺寲鍚庣殑璺緞浠g爜鍒楄〃
+ * 浼樺寲璺緞
*/
private List<PathCode> optimizePathByRemovingBacktrack(List<PathCode> codeList) {
if (codeList == null || codeList.size() <= 2) {
@@ -638,27 +634,20 @@
while (i < codeList.size()) {
PathCode current = codeList.get(i);
- // 妫�鏌ユ槸鍚︽槸鏉ュ洖璧版ā寮忥細A->B->A锛堣繛缁笁涓偣锛岀涓�涓拰绗笁涓浉鍚岋級
- // 濡傛灉鍑虹幇鏉ュ洖璧帮紝璺宠繃B鍜岀浜屼釜A锛岀洿鎺ュ埌涓嬩竴涓笉鍚岀殑鐐�
if (i < codeList.size() - 2) {
PathCode next = codeList.get(i + 1);
PathCode nextNext = codeList.get(i + 2);
- // 妫�娴嬫潵鍥炶蛋锛氬綋鍓嶄綅缃� == 涓嬩笅涓綅缃紝涓斾腑闂翠綅缃笉鍚�
if (current.getCode().equals(nextNext.getCode()) &&
!current.getCode().equals(next.getCode())) {
- // 鏉ュ洖璧帮細璺宠繃B鍜岀浜屼釜A锛岀洿鎺ュ鐞嗕笅涓�涓笉鍚岀殑鐐�
- // 鎵惧埌涓嬩竴涓笌褰撳墠鐐逛笉鍚岀殑浣嶇疆
int j = i + 2;
while (j < codeList.size() && codeList.get(j).getCode().equals(current.getCode())) {
j++;
}
- // 濡傛灉鎵惧埌浜嗕笉鍚岀殑鐐癸紝鎴栬�呭埌杈炬湯灏撅紝璺宠繃鏉ュ洖璧扮殑閮ㄥ垎
if (j < codeList.size()) {
- i = j; // 璺冲埌涓嬩竴涓笉鍚岀殑鐐�
+ i = j;
continue;
} else {
- // 濡傛灉鍚庨潰閮芥槸鐩稿悓鐐癸紝淇濈暀褰撳墠鐐癸紙鍙兘鏄洰鏍囩偣锛�
break;
}
}
@@ -678,7 +667,7 @@
}
}
- // 閲嶆柊璁$畻鏂瑰悜锛堝洜涓轰紭鍖栧悗璺宠繃浜嗕腑闂寸偣锛屾柟鍚戦渶瑕佹洿鏂帮級
+ // 閲嶆柊璁$畻鏂瑰悜
for (int k = 0; k < optimized.size(); k++) {
PathCode code = optimized.get(k);
if (k < optimized.size() - 1) {
--
Gitblit v1.9.1