<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 兩個大小的組之間的最小差異 > 原文: [https://www.geeksforgeeks.org/minimum-difference-between-groups-of-size-two/](https://www.geeksforgeeks.org/minimum-difference-between-groups-of-size-two/) 給定一個偶數個元素的數組,請使用這些數組元素形成 2 個組,以使總和最高的組與總和最低的組之間的差異最小。 **注意**:一個元素只能是一個組的一部分,并且必須是至少一個組的一部分。 **示例**: ``` Input : arr[] = {2, 6, 4, 3} Output : 1 Groups formed will be (2, 6) and (4, 3), the difference between highest sum group (2, 6) i.e 8 and lowest sum group (3, 4) i.e 7 is 1. Input : arr[] = {11, 4, 3, 5, 7, 1} Output : 3 Groups formed will be (1, 11), (4, 5) and (3, 7), the difference between highest sum group (1, 11) i.e 12 and lowest sum group (4, 5) i.e 9 is 3. ``` **簡單方法**:一種簡單方法是嘗試對數組元素的所有組合進行檢查,并檢查總和最高的組和總和最低的組之間組合差異的每組。 總共將形成 n *(n-1)/ 2 個這樣的基團(nC2)。 時間復雜度:O(n ^ 3)要生成組,需要進行 n ^ 2 次迭代,并針對每個組進行 n 次迭代,因此在最壞的情況下,需要 n ^ 3 次迭代。 **有效方法**:有效方法是使用貪婪方法。 通過從數組的開頭選擇一個元素,然后從結尾選擇一個元素,對整個數組進行排序并生成組。 ## C++ ```cpp // CPP program to find minimum difference // between groups of highest and lowest // sums. #include <bits/stdc++.h> #define ll long long int using namespace std; ll calculate(ll a[], ll n) { ????// Sorting the whole array. ????sort(a, a + n);? ????// Generating sum groups. ????vector<ll> s; ????for (int i = 0, j = n - 1; i < j; i++, j--)? ???????s.push_back(a[i] + a[j]); ????ll mini = *min_element(s.begin(), s.end());? ????ll maxi = *max_element(s.begin(), s.end());? ????return abs(maxi - mini); } int main() { ????ll a[] = { 2, 6, 4, 3 }; ????int n = sizeof(a) / (sizeof(a[0])); ????cout << calculate(a, n) << endl; ????return 0; } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看