modify code

master
algorithmzuo 10 months ago
parent 6679ad61f7
commit d558a8cb3e

@ -19,7 +19,7 @@ public class Code05_ShellSort {
// 然后再来到每个数每次跳1步往前交换直到往前1步的数<=当前的数,停止
int[] step = { 5, 2, 1 };
for (int s = 0; s < step.length; s++) {
for (int i = 0; i < arr.length; i++) {
for (int i = step[s]; i < arr.length; i++) {
for (int j = i - step[s]; j >= 0 && arr[j] > arr[j + step[s]]; j -= step[s]) {
swap(arr, j, j + step[s]);
}

@ -26,7 +26,7 @@ public class Code03_MaxMeetingScore {
int time = 0;
int ans = 0;
for (int i = 0; i < size; i++) {
if (time + 10 <= path[i][0]) {
if (time <= path[i][0]) {
ans += path[i][1];
time += 10;
} else {
@ -49,7 +49,7 @@ public class Code03_MaxMeetingScore {
// 已经把所有会议,按照截止时间,从小到大,排序了!
// 截止时间一样的,谁排前谁排后,无所谓
for (int i = 0; i < meetings.length; i++) {
if (time + 10 <= meetings[i][0]) {
if (time <= meetings[i][0]) {
heap.add(meetings[i][1]);
time += 10;
} else {

@ -3,15 +3,12 @@ package class_2022_01_3_week;
import java.util.PriorityQueue;
// A*算法
// 过程和Dijskra高度相处
// 有到终点的预估函数
// 只要预估值<=客观上最优距离,就是对的
// 过程和Dijskra高度相似增加了到终点的预估函数
// 只要预估值 <= 客观上最优距离,就是对的
// 预估函数是一种吸引力:
// 1合适的吸引力可以提升算法的速度
// 2吸引力“过强”会出现错误
// 讲述A*算法
// 预估终点距离选择曼哈顿距离
// 要求先在体系学习班图的章节听过"Dijkstra算法"
public class Code01_AStarAlgorithm {
// Dijkstra算法
@ -67,8 +64,6 @@ public class Code01_AStarAlgorithm {
}
int n = map.length;
int m = map[0].length;
// [20,1,7]
// [20,?,1,7]
PriorityQueue<int[]> heap = new PriorityQueue<>((a, b) -> (a[0] + a[1]) - (b[0] + b[1]));
boolean[][] closed = new boolean[n][m];
heap.add(new int[] { map[startX][startY], distance(startX, startY, targetX, targetY), startX, startY });

@ -2,7 +2,6 @@ package class_2022_10_2_week;
import java.util.PriorityQueue;
// 来自华为
// 给定一个N*M的二维矩阵只由字符'O'、'X'、'S'、'E'组成
// 'O'表示这个地方是可通行的平地
// 'X'表示这个地方是不可通行的障碍
@ -17,6 +16,7 @@ import java.util.PriorityQueue;
// 1 <= N,M <= 1000
// 1 <= a,b <= 100000
// 只会有一个士兵、一个敌人
// 没有测试链接,对数器验证
public class Code05_SoldierFindEnemy {
// 暴力dfs

@ -15,7 +15,7 @@ import java.util.HashMap;
// 2 <= n <= 10^6
// -10000 <= arr[i] <= 10000
// 1 <= T <= 10^8
// 都能时间复杂度做到O(N)
// 都能时间复杂度做到O(N)
public class Code04_TowSubArrayMinLengthBothSumT {

Loading…
Cancel
Save