Menu
CoddyTech

Luyện tập #2

Bài học 10 trên 13 trong khóa học Ngăn xếp: chuỗi cấu trúc dữ liệu số 1 của Coddy.

Các thử thách tiếp theo được thiết kế để sử dụng stack .

Cấu trúc dữ liệu Stack đã có sẵn, hãy sử dụng nhé!

challenge icon

Thử thách

Dễ

Viết một hàm (function) nse nhận vào một mảng số nguyên và trả về một mảng chứa phần tử nhỏ hơn gần nhất ở bên trái của mỗi phần tử. Nếu không có phần tử nào nhỏ hơn ở bên trái một phần tử, hãy trả về -1.

Hãy dùng Stack được cung cấp để giải bài toán này!

Ví dụ:

Đầu vào: [4, 5, 2, 10, 8]

Đầu ra mong đợi: [-1, 4, -1, 2, 2]

Tự làm thử

#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;
}

Tất cả bài học trong Ngăn xếp: chuỗi cấu trúc dữ liệu số 1

Tự luyện tập: Trình biên dịch C online