1. Trang chủ
  2. » Tất cả

Bai tap bài tập tuần 2 cấu trúc dữ liệu giải thuật tuan 2

2 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Tập Tuần 2 Cấu Trúc Dữ Liệu Giải Thuật Tuần 2
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Cấu Trúc Dữ Liệu Giải Thuật
Thể loại Bài Tập
Năm xuất bản 2023
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 2
Dung lượng 162,96 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập Tuần 2 Câu 1 Cho một dãy số nguyên , hãy viết chương trình tìm chỉ số của phần tử lớn thứ hai với độ phức tạp O(n) Ví dụ Cho dãy số nguyên S = {1, 9, 11, 6, 2, 21, 15, 5} Phần tử lớn thứ hai l[.]

Trang 1

Bài tập Tuần 2

Câu 1: Cho một dãy số nguyên , hãy viết chương trình tìm chỉ số của phần tử lớn thứ hai

với độ phức tạp O(n)

Ví dụ : Cho dãy số nguyên S = {1, 9, 11, 6, 2, 21, 15, 5}: Phần tử lớn thứ hai là 15 có chỉ số

là 6

Câu 2: Cho dãy số nguyên dương {Fn} được định nghĩa như sau (với a là số nguyên dương tham gia vào dữ liệu nhập):

F1 = a

F2 = 18a2 + 10

Fn+1 = 18Fn + 10Fn-1 với n>1

Với mỗi giá trị cụ thể của a, ta tính được dãy số {Fn} cụ thể

a) Cho a = 2, hãy tính giá trị F3 và F4

b) Cho số nguyên dương a Hãy viết hàm đệ qui để tính giá trị của Fn với mọi n nguyên dương

c) Viết hàm tính Fn không dùng đệ qui

d) Phương pháp tính Fn theo đệ qui Câu a), tính Fn không dùng đệ qui Câu b): Phương pháp nào hiệu quả hơn? Tại sao?

Câu 3: Tìm phần tử trùng lặp đầu tiên trong DSLK đã cho Tìm phần tử đầu tiên từ bên trái

xuất hiện nhiều hơn một lần Nếu tất cả các phần tử là duy nhất thì in -1

Ví dụ:

Input: 1 2 3 4 3 2 1

Output: 1

Trong DSLK phần tử 1 xuất hiện 2 lần và nó là phần tử đầu tiên thoả điều kiện Vì thế trả lời là 1

Input: 1 2 3 4 5

Output: -1

Tất cả các phần tử là duy nhất Vì thế trả lời là -1

Hướng dẫn: Sử dụng kiểu dữ liệu trong C++ unordered_map<int, int>: Để lưu số lần xuất hiện của các phần tử trong dslk

Câu 4: Cho một tập S là dãy các số nguyên phân biệt, tìm phần tử d lớn nhất, với d=a+b+c,

với a,b,c và d là các phần tử phân biệt của S

.Điều kiện: 1 <= Số phần tử của tập S <= 1000

INT_MIN <= mỗi phần tử trong tập S <= INT_MAX

Ví dụ:

Input: S[] = {2, 3, 5, 7, 12}

Output: 12

Explaination: 12 là số d lớn nhất mà có thể biểu diễn như 12 = 2 + 3 + 7

Trang 2

Câu 5: Cho một mảng chỉ chứa 0 và 1, tìm mảng con lớn nhất chứa số 0 và 1 bằng nhau Độ

phức tạp thời gian dự kiến O(n)

Ví dụ:

Input: arr[] = {1, 0, 1, 1, 1, 0, 0}

Output: 1 tới 6

Input: arr[] = {0, 0, 1, 1, 0}

Output: 0 tới 3 ; 1 tới 4

Ngày đăng: 25/03/2023, 07:20

🧩 Sản phẩm bạn có thể quan tâm

w