Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm phần tử lặp duy nhất trong mảng 1 đến n-1 bằng C++

Mô tả bài toán

Cho mảng kích thước N chứa các số 1..N-1, có đúng một số lặp hai lần. Tìm số đó.

Ví dụ

arr={3,5,4,1,2,1} → Output: 1.

Giải thuật

  • Cách 1 O(N²): Lặp lồng so sánh cặp.
  • Cách 2 O(N): Tổng mảng - tổng 1..N-1 = số lặp. (Tổng 1..N-1 = N*(N-1)/2).

Mã nguồn C++ (Cách 2)

#include <iostream>
using namespace std;

int findRepValArr(int arr[], int n) {
    int arrSum = 0;
    for (int i=0; i

Đầu ra

The repetitive value in the array is 6