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


שוועריקייט לעוועל מיטל
אָפט געבעטן אין ובער
אַלגערידאַמז קאָדירונג דינאַמיש פּראָגראַממינג אינטערוויו interviewprep LeetCode LeetCodeSolutions

פּראָבלעם דערקלערונג  

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

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

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

בייַשפּיל

values = [1,3,1,4,1,5]
13

דערקלערונג:  מיר וועלן באַקומען אַ מינימום כעזשבן פֿאַר טרייאַנגגיאַליישאַן ווען מיר טריאַנגולאַטע די פילעק אויף דעם וועג:

1 * 1 * 3 + 1 * 1 * 4 + 1 * 1 * 5 + 1 * 1 * 1 = 13

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

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

אַזוי יעדער ברעג פון די פילעק קענען פאָרעם אַ דרייַעק מיט N-2 רוען ווערטיסעס. אָפּשיקן צו די בילד אונטן.

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

 

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

זע אויך
וואסער לאגלען לעעטקאָדע סאַלושאַן

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

 

אַזוי אויב מיר וועלן אַ מינימום כעזשבן פֿאַר אַ פילעק מיט ווערטעקס פון 0-6, די נייַע סאַב-פּראָבלעם איז די מינימום כעזשבן פֿאַר אַ פילעק מיט ווערטעקס פון 0-3 און 3-6.

דערפֿאַר די רעקורסיווע באַציונג ווערט:

מינסקאָרע (פּאָס 1, פּאָס 2) = מינסקאָרע (פּאָס 1, איך, א) + מינסקאָרע (איך, פּאָס 2, א) + א [פּאָס 1] * א [פּאָס 2] * א [איך]

צו באַקומען די רעקאָמפּוטאַטיאָן פון דער זעלביקער סאַב-פּראָבלעם ווידער און ווידער, מיר וועלן נוצן אַ מעמאָריזאַטיאָן טיש. דאָס וועט זיין אַן * n מענגע ווו די ווערט ביי i, j וועט קראָם די מינימום כעזשבן טרייאַנגגיאַליישאַן פון פילעק מיט ווערטיסעס פון איך צו דזש.

ימפּלעמענטאַטיאָן

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

#include <bits/stdc++.h> 
using namespace std; 
  int memo[51][51];
  
  int dp(int pos1,int pos2, vector<int>&A){
    if(pos2-pos1<=1)return 0;
    
    if(memo[pos1][pos2]!=-1)return memo[pos1][pos2];
    int ans=INT_MAX;
    for(int i=pos1+1;i<pos2;i++)
      ans=min(ans, dp(pos1,i,A) + dp(i,pos2,A) + A[pos1]*A[pos2]*A[i] );
    memo[pos1][pos2]=ans;
    return ans;
  }
  
  int minScoreTriangulation(vector<int>& A) {
    memset(memo,-1,sizeof(memo));
    return dp(0,A.size()-1,A);
  }
int main() 
{ 
 vector<int> arr = {1,3,1,4,1,5}; 
 cout<<minScoreTriangulation(arr)<<endl; 
 return 0;
}
13

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

import java.util.Arrays; 
public class Tutorialcup {
    public static int minScoreTriangulation(int[] A) {
     return dp(A, 0, A.length - 1, new Integer[A.length][A.length]);
    }
    public static int dp(int[] A, int pos1,int pos2, Integer[][] memo){
    if(pos2-pos1<=1)return 0;
    
    if(memo[pos1][pos2] != null)return memo[pos1][pos2];
    int ans=Integer.MAX_VALUE;
    for(int i=pos1+1;i<pos2;i++)
      ans=Math.min(ans, dp(A,pos1,i,memo) + dp(A,i,pos2,memo) + A[pos1]*A[pos2]*A[i] );
    memo[pos1][pos2]=ans;
    return ans;
  }
  public static void main(String[] args) {
    int [] arr = {1,3,1,4,1,5}; 
    int ans= minScoreTriangulation(arr);
    System.out.println(ans);
  }
}
13

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

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

די צייט קאַמפּלעקסיטי פון די אויבן קאָד איז אָ (N * N * N) ווייַל מיר פאָרן די ווערט מענגע פֿאַר 3 פאַרשידענע איך, דזש, ק וואַלועס וואָס געבן אַ מינימום כעזשבן פֿאַר טרייאַנגגיאַליישאַן פון די פילעק. דאָ n איז די לענג פון די ווערט מענגע.

זע אויך
געפֿינען די טאַון ריכטער לעעטקאָדע סאַלושאַן

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

די פּלאַץ קאַמפּלעקסיטי פון די אויבן קאָד איז אָ (N * N) ווייַל ניצן N * N עקסטרע פּלאַץ פֿאַר מעמאָריזאַטיאָן.

רעפֿערענצן