מינימום צייט צו באַזוכן אַלע פּאָינץ לעעטקאָדע סאַלושאַן


שוועריקייט לעוועל גרינג
אָפט געבעטן אין אַמאַזאָן בלומבערג facebook Media.net
מענגע דזשיאַמאַטרי

די פּראָבלעם מינימום צייט באזוכן אַלע פּאָינץ לעעטקאָדע סאַלושאַן גיט אונדז אַן מענגע אָדער וועקטאָר פון ווייזט אויף קאָואָרדאַנאַט אַקסעס. די פּראָבלעם נאָך פּראַוויידינג די ינפּוט אונדז צו געפֿינען די מינימום צייט צו באַזוכן אַלע די ווייזט אין די ינפּוט. ווען איר מאַך איין אַפּאַראַט אין יעדער פון די X אָדער Y ריכטונג, איר נעמען 1 אַפּאַראַט פון צייט. ווען איר מאַך דייאַגאַנאַלי, דאָס איז מאַך 1 אַפּאַראַט אין ביידע אינסטרוקציעס סיימאַלטייניאַסלי. איר טרעפן 1 אַפּאַראַט צייט. איצט געפֿינען די מינימום צייט צו באַזוכן אַלע די פונקטן. עס איז אן אנדער צושטאַנד. די צושטאַנד שטאַטן אַז מיר זענען פארלאנגט צו אַרומפאָרן אַלע די פונקטן אין דער זעלביקער סדר ווי געגעבן אין ינפּוט. אַזוי, אָן מאָווינג גלייַך צו די לייזונג, לאָזן אונדז נעמען עטלעכע ביישפילן.

מינימום צייט צו באַזוכן אַלע פּאָינץ לעעטקאָדע סאַלושאַן

[[1,1],[3,4],[-1,0]]
7

דערקלערונג: ווי אויך געוויזן אין די בילד, מיר דאַרפֿן 3 אַפּאַראַט צייט צו אַריבערפירן פון ערשטער פונט צו רגע. דערנאָך 4 אַפּאַראַט צייט צו אַריבערפירן פון רגע צו לעצט פונט. דעריבער, אַ גאַנץ פון 7 וניץ פון צייט איז פארלאנגט.

צוגאַנג פֿאַר מינימום צייט באזוכן אַלע פּאָינץ לעעטקאָדע סאַלושאַן

די פּראָבלעם מינימום צייט באזוכן אַלע פּאָינץ לעעטקאָדע סאַלושאַן פרעגט אונדז וואָס איז די מינימום צייט צו באַזוכן אַלע די ווייזט אין די אַרייַנשרייַב. די פּראָבלעם אויך גאָוז אונדז צו אַרומפאָרן די פונקטן אין דער זעלביקער סדר ווי זיי זענען צוגעשטעלט אין די אַרייַנשרייַב. מיר זענען אויך דערציילט וועגן די קאָס פון יעדער מאַך. מיר קענען מאַך 1 אַפּאַראַט אין איינער פון די צוויי אינסטרוקציעס אָדער מיר קענען מאַך סיימאַלטייניאַסלי 1 אַפּאַראַט אין ביידע אינסטרוקציעס. די מאָוועס קאָסטן אונדז 1 צייט אַפּאַראַט. אַזוי, בכלל, מען וועט פּרובירן צו מאַך דייאַגאַנאַלי ביז איינער פון די X אָדער Y ווערט ווערט גלייַך צו די X אָדער Y ווערט פון ווייַטער פונט. איצט, מיר זענען זיכער אַז איינער פון די x אָדער y איז גלייַך צו די x אָדער y פון די קראַנט פונט. און איצט מיר דאַרפֿן צו מאַך נאָר ווערטיקלי אָדער כאָריזאַנטאַלי.

די טינגקינג מיינט אַ ביסל האַרט אָבער די ימפּלאַמענטיישאַן פון דעם פּראָבלעם טורנס אויס צו זיין פיל סימפּלער. דאָ, אַנשטאָט פון דעם פּראָצעס סעפּעראַטלי, מיר ערשטער מאַך דייאַגאַנאַלי און דאַן אין אַ איין ריכטונג. מיר נאָר געפֿינען די מאַקסימום חילוק פון די X און Y וואַלועס פון די קראַנט און ווייַטער פונט. דאָס גיט אונדז אַ פּשוט פאָרמולע פֿאַר יעדער מאַך.

קאָדעקס

C ++ קאָד פֿאַר מינימום צייט באזוכן אַלע פּאָינץ לעעטקאָדע סאַלושאַן

#include <bits/stdc++.h>
using namespace std;

int minTimeToVisitAllPoints(vector<vector<int>>& points) {
    int ans = 0;
    int n = points.size();
    for(int i=1;i<n;i++){
        vector<int> cur = points[i], prev = points[i-1];
        int curVal = max(abs(cur[0] - prev[0]), abs(cur[1] - prev[1]));
        ans += curVal;
    }
    return ans;
}

int main(){
    vector<vector<int>> points({{1,1},{3,4},{-1,0}});
    cout<<minTimeToVisitAllPoints(points);
}
7

Java קאָד פֿאַר מינימום צייט באזוכן אַלע פּאָינץ לעעטקאָדע סאַלושאַן

import java.util.*;
import java.lang.*;
import java.io.*;

class Main
{
  public static int minTimeToVisitAllPoints(int[][] points) {
        int ans = 0;
        int n = points.length;
        for(int i=1;i<n;i++){
            int[] cur = points[i];
            int[] prev = points[i-1];
            int curVal = Math.max(Math.abs(cur[0] - prev[0]), Math.abs(cur[1] - prev[1]));
            ans += curVal;
        }
        return ans;
    }
    
  public static void main (String[] args) throws java.lang.Exception {
    int[][] points = {{1,1},{3,4},{-1,0}};
    System.out.println(minTimeToVisitAllPoints(points));
  }
}
7

קאַמפּלעקסיטי אַנאַליסיס

צייט קאַמפּלעקסיטי

אָ (N), ווייַל מיר מוזן דורכגיין די גאנצע רשימה און דער צייט קאַמפּלעקסיטי איז לינעאַר.

ספעיס קאַמפּלעקסיטי

אָ (1), ווייַל מיר געוויינט בלויז אַ איין בייַטעוודיק צו קראָם דעם ענטפער, אַזוי די פּלאַץ קאַמפּלעקסיטי איז קעסיידערדיק.