0〜99の範囲にある欠落している要素を印刷します
ユーザーが入力した特定のセットから欠落している値が表示されます
Given : array = {88, 105, 3, 2, 200, 0, 10};
Output : 1 4-9 11-87 89-99 アルゴリズム
START STEP 1-> Take an array with elements, bool flag[MAX] to Fale, int i, j, n to size of array Step 2-> Loop For from I to 0 and i<n and i++ IF array[i] < 100 && array[i]>=0 Set flag[array[i]]=true End IF Step 3 -> End For Loop Step 4 -> Loop For from i to 0 and i<MAX and ++i IF flag[i] == false Set j=i+1 Loop While j<MAX && flag[j] == false Set j++ End While If j=i+1 Print i End IF Else Print i and j-1 End Else Set i=j End IF Step 5 -> End For Loop STOP
例
#include <stdio.h>
#define MAX 100
int main(int argc, char const *argv[]) {
int array[] = {88, 105, 3, 2, 200, 0, 10};
bool flag[MAX] = { false }; //Initializing all the values of flag as false
int i, j, n;
n = sizeof(array)/sizeof(array[0]);
for (i = 0; i < n; i++) {
if (array[i] < 100 && array[i]>=0) {
flag[array[i]] = true; //Making the value of the elements present in an array as true, So missing will remain false
}
}
for (i = 0; i < MAX; ++i) {
if(flag[i] == false) { //Checking for false values
j = i+1; //Giving the value of the next iteration
while(j<MAX && flag[j] == false) //Checking the value of flag[j] is false
j++;
if (j==i+1) //For printing the missing number
printf("%d\n", i);
else //For printing the missing range
printf("%d-%d\n", i, j-1);
i = j; //Initializing the range's last value to start from that number
}
}
return 0;
} 出力
上記のプログラムを実行すると、次の出力が生成されます
1 4-9 11-87 89-99
-
配列のソートされた個別の要素をC言語で出力します
整数要素の配列が与えられた場合、タスクは重複する値を削除し、ソートされた方法で個別の要素を出力することです。 以下に示すのは、整数型の値を4、6、5、3、4、5、2、8、7、0の形式で格納する配列です。結果は、ソートされた要素を0、2、3、4として出力します。 4、5、5、6、7、8ですが、この結果には重複する値4と5が含まれているため、削除する必要があり、最終結果は0、2、3、4、5、6、7、8になります。 例 Input: array[] = {4, 6, 5, 3, 4, 5, 2, 8, 7, 0} Output: 0 2 3 4 5 6 7 8 説明 したがって、結果を達成
-
C++の特定の範囲にあるBSTノードをカウントします
ノードと範囲で構成される二分探索木が与えられます。タスクは、指定された範囲内にあるノードの数を計算し、結果を表示することです。 二分探索木(BST)は、すべてのノードが以下のプロパティに従うツリーです- ノードの左側のサブツリーには、その親ノードのキー以下のキーがあります。 ノードの右側のサブツリーには、その親ノードのキーよりも大きいキーがあります。 したがって、BSTはすべてのサブツリーを2つのセグメントに分割します。左側のサブツリーと右側のサブツリーで、次のように定義できます- left_subtree(キー)≤node(キー)≤right_subtree(キー) 例