透過移動線段中心點最大化交集(C++)


在此教程中,我們將討論一個透過移動線段中心點找到最大可能交集的程式

為此,我們將得到三個線段的中心及其長度。我們的任務是將它們的中心移動 K 距離,以增加相交區域的長度。

示例

 線上演示

#include <bits/stdc++.h>
using namespace std;
//finding maximum intersection
int max_intersection(int* center, int length, int k) {
   sort(center, center + 3);
   if (center[2] - center[0] >= 2 * k + length) {
      return 0;
   }
   else if (center[2] - center[0] >= 2 * k) {
      return (2 * k - (center[2] - center[0] - length));
   }
   else
      return length;
}
int main() {
   int center[3] = { 1, 2, 3 };
   int L = 1;
   int K = 1;
   cout << max_intersection(center, L, K);
}

輸出

1

更新於: 09-Sep-2020

85 瀏覽量

開啟你的 職業

完成課程獲得認證

開始
廣告
© . All rights reserved.