← Level 3 · Đọc hiểu & Tình huống FE
Thuật toán & giả mã Tình huống đọc hiểu Độ khó: Nâng cao Thời gian dự kiến: Khoảng 5 phút Cấp độ phù hợp: FE Level 3 (môn B)

Phát hiện phần tử trùng lặp trong mảng

Đoạn giả mã dưới đây kiểm tra xem mảng data có chứa giá trị trùng lặp nào hay không.

○ kiểu luận lý: hasDuplicate(mảng số nguyên: data)
  số nguyên: i, j
  for (i từ 0 đến (số phần tử của data) - 2, tăng dần 1)
    for (j từ i + 1 đến (số phần tử của data) - 1, tăng dần 1)
      if (data[i] bằng data[j]) then
        return true
      endif
    endfor
  endfor
  return false

Từ khóa

重複じゅうふくtrùng lặp

Câu hỏi

1

Khi data = [3, 5, 9, 5, 1], giá trị nào được trả về?

Lựa chọn

  1. true
  2. false
  3. 2
  4. 5
Xem giải thích

data[1]=5 và data[3]=5 trùng nhau, nên trả về true.

2

Khi data = [3, 5, 9, 7, 1], giá trị nào được trả về?

Lựa chọn

  1. true
  2. false
  3. 0
  4. Lỗi
Xem giải thích

Tất cả các phần tử đều khác nhau, nên trả về false.

3

Độ phức tạp thời gian trong trường hợp xấu nhất của thủ tục này, với n phần tử, là gì?

Lựa chọn

  1. O(n)
  2. O(n log n)
  3. O(n^2)
  4. O(n^3)
Xem giải thích

Khi không có trùng lặp, mọi cặp đều phải được kiểm tra qua vòng lặp lồng nhau, cho độ phức tạp O(n^2).

Đăng nhập để lưu kết quả

Bạn có thể đọc miễn phí nội dung, câu hỏi và giải thích. Hãy đăng nhập để lưu kết quả và đưa vào hàng ôn tập cùng phân tích điểm yếu.

Đăng nhập để lưu