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(キー) 例