Menu
CoddyTech

Latihan #5

Pelajaran 14 dari 14 dalam kursus Daftar Berantai Ganda, Seri Struktur Data #6 di Coddy.

challenge icon

Tantangan

Mudah

Diberikan array bilangan bulat terurut arr (nilai-nilai dari doubly linked list yang terurut) dan bilangan bulat target, tulis fungsi countPairs yang mengembalikan jumlah pasangan indeks (i, j) dengan i < j dan arr[i] + arr[j] == target.

Anggap input tidak berisi nilai duplikat.

Gunakan doubly linked list untuk menyelesaikan masalah ini! Gunakan dua pointer dari kedua ujung, lalu gerakkan ke arah dalam.

Kamu harus menggunakan class DoublyLinkedList (disediakan dalam doublylinkedlist.<ext> bersama node.<ext>) — jangan gunakan fitur bawaan bahasa seperti reverse, slicing, atau sort pada array, maupun operasi list dari stdlib untuk menghitung hasilnya.

Coba sendiri

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "solution.h"

int main() {
    char line1[8192];
    char line2[64];
    if (!fgets(line1, sizeof(line1), stdin)) line1[0] = '\0';
    if (!fgets(line2, sizeof(line2), stdin)) line2[0] = '\0';
    int arr[4096];
    int len = 0;
    char* tok = strtok(line1, " \t\r\n");
    while (tok) { arr[len++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
    int n = atoi(line2);
    int r = countPairs(arr, len, n);
printf("%d\n", r);
    return 0;
}

Semua pelajaran di Daftar Berantai Ganda, Seri Struktur Data #6

Latihan sendiri: Compiler C online