透過最小增量使排序陣列中的元素變得唯一


本文旨在透過最小增量使排序陣列中的元素變得唯一。首先,提供了一個已排序的整數陣列。我們必須透過增加值並儘可能保持陣列和儘可能低,使陣列元素彼此不同。作為輸出,我們必須顯示可實現的最小總和。

問題陳述

透過最小增量使排序陣列中的元素變得唯一。

方法

給定一個排序的整數陣列。

我們首先檢查給定整數陣列中的元素是否唯一。也就是說,我們確保給定整數陣列中沒有元素重複超過一次。如果所有元素都是唯一的,我們新增給定陣列中的所有元素,並將陣列中存在的元素的總和作為輸出返回。假設如果任何數字重複超過一次,我們忽略重複並僅取該元素一次,無論它重複多少次。我們新增這些元素並將總和作為結果返回。

示例 1

考慮一個整數陣列,a={1,2,3}

由於給定陣列中的所有三個元素 1、2 和 3 在這裡都是唯一的,也就是說,此整數陣列中的任何元素都沒有重複超過一次,因此我們只需將所有元素 1、2 和 3 相加,並將總和 6 作為輸出列印。

也就是說,我們在這裡獲得的輸出是 1+2+3=6。

示例 2

考慮一個整數陣列,a={1,2,2,3}

在此整數陣列中,元素 1 和 3 只出現了一次,但元素 2 在這裡重複了兩次。根據規則,我們必須忽略重複並僅考慮元素 2 一次。也就是說,我們新增 1、2 和 3,並將總和 6 作為輸出列印。

也就是說,我們在這裡獲得的輸出是 1+2+3=6。

演算法

下面給出了透過最小增量使排序陣列中的元素變得唯一的演算法。

步驟 1: 開始

步驟 2: 使用值定義整數陣列。

步驟 3: 設定陣列的大小。

步驟 4: 將總和和前一個元素設定為陣列的第一個元素。

步驟 5: 執行迴圈,將當前元素設定為陣列的第二個元素。

步驟 6: 如果前一個元素大於或等於當前元素,則將當前元素增加到前一個元素加 1。

步驟 7: 將總和設定為總和加當前元素。

步驟 8: 將前一個元素設定為當前元素。

步驟 9: 重複迴圈。

步驟 10: 列印總和。

步驟 10: 停止

下面給出了透過最小增量使排序整數陣列中的元素變得唯一的 C 程式。

示例

#include <stdio.h>
   int main(){
   int a[]={1,2,2,3}; //input the array elements
   int n = 4;       //set the size of the array
   int sum = a[0];   //set sum to 0
   int prev = a[0];   //set prev to 0
//iterate the array and check for the condition
   for( int i = 1; i < n; i++ ) {
      int curr = a[i];
      if( prev >= curr ) {
         curr = prev+1;
      }
      sum += curr;
      prev = curr;
   }
   printf("%d",sum); // print the result obtained
}

輸出

執行後,將產生以下輸出

10

結論

同樣,我們可以透過可能的最小增量使排序陣列中的元素變得唯一。

本文解決了透過最小增量使排序陣列中的元素變得唯一的挑戰。

本文提供了 C 程式設計程式碼以及透過最小增量使排序陣列中的元素變得唯一的演算法。

更新於: 2023-08-23

123 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.