Practice #2
Coddyの「スタック - データ構造シリーズ #1」コースのレッスン 10/13。
次のチャレンジは、スタックを使用するように設計されています。
Stackデータ構造はすでに用意されています。ぜひ活用してください!
チャレンジ
簡単整数配列を受け取り、各 element の(左側にある)nearest smaller element(最も近いより小さな要素)を含む配列を返り値として返す function nse を作成してください。要素の左側にそれより小さな要素が存在しない場合は、-1 を return してください。
この問題を解決するには、提供されている Stack を使用してください!
例:
input: [4, 5, 2, 10, 8]
期待される出力: [-1, 4, -1, 2, 2]
自分で試してみよう
#include <stdio.h>
#include <stdlib.h>
#include "nse.h"
int main() {
int* a = (int*)malloc(sizeof(int) * 1000);
int aSize = 0;
int x;
while (scanf("%d", &x) == 1) {
a[aSize++] = x;
}
int returnSize;
int* result = nse(a, aSize, &returnSize);
for (int i = 0; i < returnSize; i++) {
printf("%d\n", result[i]);
}
free(a);
return 0;
}