Phỏng vấn top 150Dễ dàng

Tìm giá trị nhỏ nhất trong mảng được sắp xếp xoay

Hướng dẫn chi tiết và cách triển khai Python cho bài toán 'Tìm giá trị nhỏ nhất trong mảng được sắp xếp xoay'.

Tuyên bố vấn đề

Dễ dàng

Giả sử một mảng có độ dài n được sắp xếp theo thứ tự tăng dần được xoay từ 1 đến n lần. Ví dụ: mảng [0,1,2,4,5,6,7] có thể trở thành [4,5,6,7,0,1,2] nếu được xoay 4 lần.

Lưu ý rằng việc xoay mảng [a[0], a[1], ..., a[n-1]] 1 lần sẽ dẫn đến [a[n-1], a[0], a[1], ..., a[n-2]].

Cho mảng xoay đã được sắp xếp nums gồm các phần tử duy nhất, hãy trả về phần tử tối thiểu của mảng này.

Bạn phải viết một thuật toán chạy trong thời gian O(log n).

Viết hàm findMin(nums: List[int]) -> int.

Ràng buộc
  • n == len(nums)
  • 1 <= n <= 5000
  • -5000 <= nums[i] <= 5000
  • All integers in nums are unique
  • nums is sorted and rotated between 1 and n times

Ví dụ

Example 1
Input
nums = [3, 4, 5, 1, 2]
Output
1
Explanation

The original array was [1,2,3,4,5] rotated 3 times. The minimum is 1.

Example 2
Input
nums = [4, 5, 6, 7, 0, 1, 2]
Output
0
Explanation

The original array was [0,1,2,4,5,6,7] rotated 4 times. The minimum is 0.

Example 3
Input
nums = [11, 13, 15, 17]
Output
11
Explanation

Array is not rotated (or rotated n times). The minimum is the first element.

Need a Hint?
Hãy cân nhắc việc sử dụng các cấu trúc dữ liệu dành riêng cho Tìm kiếm nhị phân như tập hợp hoặc vùng heap.
Edge Cases to Watch
  • Cấu trúc đầu vào trống
  • Đầu vào phần tử đơn
  • Giới hạn số lớn

Sẵn sàng để giải quyết?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Mở trong Trình chỉnh sửa
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.