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

Chương trình tìm X cho mảng đặc biệt có X phần tử >= X trong Python

Giả sử ta có mảng nums các phần tử ≥ 0. Mảng gọi là đặc biệt (special) nếu tồn tại số x sao cho có đúng x số trong nums lớn hơn hoặc bằng x. x không nhất thiết là phần tử của nums. Tìm x nếu mảng đặc biệt, ngược lại trả về -1.

Ví dụ: nums = [4,6,7,7,1,0], output 4 vì có 4 số ≥ 4.

Giải thuật

  1. For i từ 0 đến max(nums):
    • count := 0
    • Với mỗi j trong nums:
      • Nếu j >= i: count++
    • Nếu count == i: trả về i
  2. Trả về -1

Ví dụ (Python)

def solve(nums):
    for i in range(max(nums) + 1):
        count = 0
        for j in nums:
            if j >= i:
                count += 1
        if count == i:
            return i
    return -1

nums = [4, 6, 7, 7, 1, 0]
print(solve(nums))

Input

[4,6,7,7,1,0]

Output

4