Làm thế nào để bạn tìm thấy số lớn thứ n trong python?

Cho một danh sách các số nguyên, nhiệm vụ là tìm N phần tử lớn nhất với giả sử kích thước của danh sách lớn hơn hoặc bằng o N. ví dụ

Nội dung chính Hiển thị

  • Khuyến khích. Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp
  • Làm thế nào để bạn tìm thấy giá trị lớn nhất N trong một mảng?
  • Làm cách nào để bạn tìm thấy giá trị lớn nhất trong một mảng trong Python?
  • Làm cách nào để bạn tìm thấy phần tử lớn thứ k trong một mảng trong Python?
  • Làm thế nào để bạn tìm thấy 3 giá trị hàng đầu trong Python?

Input : [4, 5, 1, 2, 9] 
        N = 2
Output :  [9, 5]

Input : [81, 52, 45, 10, 3, 2, 96] 
        N = 3
Output : [81, 96, 52]

Khuyến khích. Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp

Một giải pháp đơn giản duyệt qua danh sách đã cho N lần. Trong mỗi lần duyệt, hãy tìm giá trị lớn nhất, thêm giá trị đó vào kết quả và xóa giá trị đó khỏi danh sách. Dưới đây là việc thực hiện.  

Python3

[85, 41]
7
[85, 41]
8

[85, 41]
9
[85, 41]
0
[85, 41]
0
[85, 41]
1

[85, 41]
9
[85, 41]
3
[85, 41]
4
[85, 41]
5
[85, 41]
6
[85, 41]
7
[85, 41]
8
[85, 41]
9

[85, 41]
00
[85, 41]
01
[85, 41]
0
[85, 41]
8

[85, 41]
00
[85, 41]
3
[85, 41]
06
[85, 41]
5
[85, 41]
6
[85, 41]
7
[85, 41]
00
[85, 41]
01

[85, 41]
02
[85, 41]
03
[85, 41]
04

[85, 41]
05
[85, 41]
01____10
[85, 41]
08

[85, 41]
00
[85, 41]
00

[85, 41]
00
[85, 41]
02

[85, 41]
9
[85, 41]
04____305

[85, 41]
06
[85, 41]
0
[85, 41]
08
[85, 41]
09
[85, 41]
90
[85, 41]
91
[85, 41]
90
[85, 41]
93
[85, 41]
90
[85, 41]
95
[85, 41]
90
[85, 41]
8
[85, 41]
90
[85, 41]
99
[85, 41]
90
[85, 41]
71
[85, 41]
90
[85, 41]
91
[85, 41]
90
[85, 41]
75
[85, 41]
76

[85, 41]
77
[85, 41]
0
[85, 41]
09

[85, 41]
80

đầu ra

[85, 41]

Độ phức tạp về thời gian. O(N * size) trong đó kích thước là kích thước của danh sách đã cho.
Không gian phụ trợ. O(N)

Phương pháp 2.  

Python3

[85, 41]
81
[85, 41]
0
[85, 41]
08
[85, 41]
84
[85, 41]
90
[85, 41]
86
[85, 41]
90
[85, 41]
88
[85, 41]
90
[85, 41]
90
[85, 41]
90
[85, 41]
92
[85, 41]
90
[85, 41]
94
[85, 41]
95
[85, 41]
90
[85, 41]
97
[85, 41]
76

[85, 41]
99
[85, 41]
0
[85, 41]
01

[85, 41]
02

[85, 41]
04
[85, 41]
04
[85, 41]
94
[85, 41]
06

đầu ra

[85, 41]
0

Thời gian phức tạp. O(nlogn)

Không gian phụ trợ. Ô(1)

Vui lòng tham khảo k phần tử lớn nhất (hoặc nhỏ nhất) trong một mảng để có các giải pháp hiệu quả hơn cho vấn đề này



Giả sử chúng ta có một mảng chưa sắp xếp, chúng ta phải tìm phần tử lớn thứ k từ mảng đó. Vì vậy, nếu mảng là [3,2,1,5,6,4] và k = 2, thì kết quả sẽ là 5

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Chúng tôi sẽ sắp xếp phần tử,
  • nếu k là 1 thì trả về phần tử cuối cùng, ngược lại trả về mảng[n – k], trong đó n là kích thước của mảng

    Số lớn nhất trong Python là gì?

    giá trị, tương ứng với 18.446.744.073.709.551.615 cho loại dữ liệu không dấu và nằm trong khoảng từ -9.223.372.036.854.775.807 đến 9.223.372.036.854.775.807 trong phiên bản có dấu .

    Làm cách nào để tìm số lớn nhất trong danh sách Python không có giá trị tối đa?

    Để tìm số lớn nhất trong danh sách mà không cần sử dụng hàm max(). .
    Khai báo một biến mới và khởi tạo nó thành Không có
    Sử dụng vòng lặp for để duyệt qua danh sách
    Kiểm tra xem mỗi số có lớn hơn giá trị tối đa hiện tại không
    Gán từng số đáp ứng điều kiện cho biến mới

    Làm cách nào để tìm chỉ mục của số lớn nhất trong danh sách Python?

    Sử dụng hàm enumerate() để tìm chỉ mục của giá trị lớn nhất trong danh sách. Sử dụng numpy. argmax() của thư viện NumPy để tìm chỉ mục của giá trị lớn nhất trong danh sách.