Hướng dẫn tile jumping program in python true or false - chương trình nhảy ô trong python true hoặc false


Giả sử chúng ta có một loạt các số nguyên không âm; Chúng tôi ban đầu được định vị ở chỉ số đầu tiên của mảng. Mỗi phần tử trong mảng đã cho biểu thị độ dài nhảy tối đa ở vị trí đó. Chúng tôi phải xác định xem chúng tôi có thể đạt được chỉ số cuối cùng hay không. Vì vậy, nếu mảng giống như [2,3,1,1,4], thì đầu ra sẽ đúng. Điều này giống như nhảy một bước từ vị trí 0 đến 1, sau đó ba bước từ vị trí 1 đến cuối.

Hãy cho chúng tôi xem các bước -

  • n: = chiều dài của mảng a - 1
  • Đối với i: = n -1, xuống -1
    • Nếu a [i] + i> n, thì n: = i
  • trả về true khi n = 0, nếu không thì sai

Hãy cho chúng tôi xem việc thực hiện sau đây để hiểu rõ hơn -

Thí dụ

& nbsp; bản demo trực tiếp

class Solution(object):
   def canJump(self, nums):
      n = len(nums)-1
      for i in range(n-1,-1,-1):
         if nums[i] + i>=n:
            n = i
      return n ==0
ob1 = Solution()
print(ob1.canJump([2,3,1,1,4]))

Đầu vào

[2,3,1,1,4]

Đầu ra

True

Hướng dẫn tile jumping program in python true or false - chương trình nhảy ô trong python true hoặc false

Cập nhật vào ngày 04-tháng 5 năm 2020 05:54:49

  • Câu hỏi và câu trả lời liên quan
  • Jump Game II trong Python
  • Jump Game III trong C ++
  • Jump Game V trong C ++
  • Jump Game IV trong C ++
  • Chương trình tìm điểm tối đa mà chúng ta có thể có được trong trò chơi nhảy trong Python
  • Trò chơi Hangman trong Python?
  • Trò chơi bóng chày ở Python
  • Trò chơi Hangman trong Lập trình Python
  • Tìm kiếm Jump
  • Trò chơi màu sử dụng tkinter trong Python
  • Trò chơi tô màu cây nhị phân trong Python
  • Trò chơi của Bob ở Python
  • Ếch nhảy vào C ++
  • Làm thế nào để phát triển một trò chơi ở Python?
  • Bắt trò chơi bóng bằng Python

Hôm nay, chúng ta có một thử thách lập trình Python khác được lấy từ LeetCode - vấn đề trò chơi nhảy LeetCode.

Chúng tôi sẽ thảo luận về một cách tiếp cận được đề xuất cho vấn đề LeetCode này, sau đó là một giải pháp Python được giải thích đầy đủ.

Ready?

Mục lục

  • Vấn đề trò chơi nhảy leetcode
    • ví dụ 1
    • Ví dụ 2
  • Cách tiếp cận được đề xuất cho vấn đề trò chơi nhảy LeetCode
    • ví dụ 1
    • Ví dụ 2
  • Cách tiếp cận được đề xuất cho vấn đề trò chơi nhảy LeetCode
    • Giải pháp trò chơi nhảy LeetCode được đề xuất trong Python
    • Lặp lại hàm bằng cách sử dụng hàm ral ()
    • Bên trong vòng lặp

Vấn đề trò chơi nhảy leetcode

ví dụ 1

Ví dụ 2

ví dụ 1

Ví dụ 2

Cách tiếp cận được đề xuất cho vấn đề trò chơi nhảy LeetCode

Giải pháp trò chơi nhảy LeetCode được đề xuất trong Python

Lặp lại hàm bằng cách sử dụng hàm ral ()

Bên trong vòng lặp

Ví dụ 2

Cách tiếp cận được đề xuất cho vấn đề trò chơi nhảy LeetCode

Giải pháp trò chơi nhảy LeetCode được đề xuất trong Python

Cách tiếp cận được đề xuất cho vấn đề trò chơi nhảy LeetCode

Giải pháp trò chơi nhảy LeetCode được đề xuất trong Python

Lặp lại hàm bằng cách sử dụng hàm ral ()

Bên trong vòng lặp

ví dụ 1

Ví dụ 2

Cách tiếp cận được đề xuất cho vấn đề trò chơi nhảy LeetCode

Giải pháp trò chơi nhảy LeetCode được đề xuất trong Python

Lặp lại hàm bằng cách sử dụng hàm ral ()

Bên trong vòng lặp

Sau khi vòng lặp

Hãy bắt đầu với vấn đề đầu tiên. Vấn đề này đòi hỏi chúng ta phải viết một hàm chấp nhận danh sách các số nguyên không âm. Mỗi phần tử trong danh sách thể hiện độ dài nhảy tối đa của bạn ở vị trí đó.

Ví dụ 2

Cách tiếp cận được đề xuất cho vấn đề trò chơi nhảy LeetCode

Giải pháp trò chơi nhảy LeetCode được đề xuất trong Python

Lặp lại hàm bằng cách sử dụng hàm ral ()

Bên trong vòng lặp

Sau khi vòng lặp

Cách tiếp cận được đề xuất cho vấn đề trò chơi nhảy LeetCode

Giải pháp trò chơi nhảy LeetCode được đề xuất trong Python

def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0

Lặp lại hàm bằng cách sử dụng hàm ral ()

Bên trong vòng lặp

Tiếp theo, chúng tôi khai báo hai biến -

True
3 và
True
4.

True
3 lưu trữ số bước tối thiểu cần thiết để đạt được vị trí gần đây nhất được coi là tốt.

True
4, mặt khác, lưu trữ chỉ số của vị trí đó.

Chúng tôi sẽ khởi tạo

True
4 vào chỉ số của phần tử cuối cùng trong
True
0 vì chúng tôi sẽ lặp lại
True
0 ngược và vị trí cuối cùng luôn được coi là một vị trí tốt.

Lặp lại hàm bằng cách sử dụng hàm ral ()

Từ các dòng 9 đến 12, chúng tôi có vòng lặp

def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
0 sử dụng hàm
def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
1 để lặp qua
True
0.

Hãy nhớ lại rằng hàm

def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
3 trả về một chuỗi các số bắt đầu từ
def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
4 và kết thúc một số trước
def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
5.

def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
6 Chỉ định sự gia tăng để sử dụng.

Trong giải pháp được đề xuất của chúng tôi,

def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
4 bằng
def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
8,
def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
5 bằng -1 và
def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
6 bằng -1.

Điều này có nghĩa là chúng tôi muốn hàm

def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
1 bắt đầu từ
def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
8 và tiếp tục giảm 1 cho đến khi chúng tôi đạt được một số trước
def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
5 (tức là một số trước -1, là 0).

Điều này dẫn đến vòng lặp

def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
0 lặp lại từ phần tử cuối cùng thứ hai trong danh sách đến phần tử thứ nhất.

Bên trong vòng lặp

Bên trong vòng

def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
0, chúng tôi tính toán số lượng các bước tối thiểu cần thiết để đạt được vị trí tốt gần đây nhất (trên dòng 10).

Giả sử True6.

Lần đầu tiên vòng lặp

def canJump(nums):
    if len(nums) == 1:
            return True

    minStepsRequired = 0
    previousGood = len(nums)-1
    
    # work backwards and see if can reach final cell
    for i in range(len(nums)-2, -1, -1):
        minStepsRequired = previousGood - i
        if nums[i] >= minStepsRequired:
            previousGood = i

    return previousGood == 0
0 chạy, chúng tôi sẽ ở phần tử cuối cùng thứ hai trong
True
0 (tức là tại INDEX 3).

True
4 lưu trữ chỉ số của phần tử cuối cùng trong
True
0, là 4.

True
3 sau đó sẽ là False2 (trong đó False3 lưu trữ chỉ số hiện tại) = 4 - 3 = 1.

Điều này có nghĩa là tại INDEX 3, chúng ta chỉ cần nhảy một bước để đạt được vị trí gần đây nhất được coi là tốt.

Trên dòng 11, chúng tôi kiểm tra xem có thể nhảy một bước từ chỉ mục 3. Vì False4 là 4 (lớn hơn hoặc bằng 1), có thể. Do đó, chỉ số 3 được coi là một vị trí tốt.

Do đó, chúng tôi cập nhật giá trị của

True
4 lên 3 (trên dòng 12).

Ở mỗi bước khi chúng tôi lặp lại đến

True
0, chúng tôi tiếp tục kiểm tra xem có thể đạt được vị trí được chỉ định bởi
True
4 từ chỉ số hiện tại không. Nếu có, chúng tôi cập nhật giá trị của
True
4 lên chỉ mục hiện tại.

Ví dụ, khi False3 bằng 2 (nghĩa là tại chỉ số 2),

True
4 là 3.

Chúng ta cần kiểm tra xem có thể nhảy từ chỉ mục 2 sang chỉ mục 3. Nếu có thể đến INDEX 3 từ INDEX 2, chúng ta biết rằng có thể đạt được phần tử cuối cùng trong

True
0. Điều này là do từ INDEX 3, chúng ta có thể nhảy đến INDEX 4, đó là yếu tố cuối cùng.

Vì chúng ta chỉ cần nhảy một bước từ chỉ mục 2 sang chỉ số 3 (theo tính toán theo công thức trên dòng 10) và [1, 1, 0, 3]2 là 2, nên có thể.

Do đó, INDEX 2 được coi là một vị trí tốt và chúng tôi cập nhật giá trị của

True
4 lên 2.

Chúng tôi tiếp tục làm điều đó cho đến khi chúng tôi hoàn thành việc lặp lại tất cả các yếu tố trong

True
0.

Sau khi vòng lặp

Sau khi lặp qua tất cả các yếu tố trong

True
0, nếu giá trị cuối cùng của
True
4 là 0, chúng ta biết rằng vị trí 0 là một vị trí tốt. Điều này có nghĩa là có thể đạt được phần tử cuối cùng từ INDEX 0.

Nếu đó là trường hợp, chúng tôi sẽ trở lại True.

Chúng tôi làm điều đó bằng cách trả về kết quả của điều kiện [1, 1, 0, 3]8 trên dòng 14. Nếu [1, 1, 0, 3]8 trả về True, chúng tôi sẽ trả lại True. Khác, chúng tôi trở lại False.

Với điều đó, chức năng đã hoàn thành.

Làm thế nào để bạn mã hóa một trò chơi nhảy trong Python?

pygame. trong đó().
Chiều rộng = 800 ..
Chiều cao = 600 ..
black=(0,0,0).
gamedisplay = pygame. trưng bày. set_mode ((chiều rộng, chiều cao)) #Cài đặt kích thước hiển thị trò chơi ..
nền = pygame. hình ảnh. Tải ('keyback.jpg').
nền = pygame. biến đổi. Tỷ lệ (nền, (chiều rộng, chiều cao)) #Scale Image ..
font = pygame. nét chữ..

Vấn đề trò chơi nhảy là gì?

Trò chơi nhảy.Bạn được cung cấp một num mảng số nguyên.Ban đầu bạn được định vị ở chỉ mục đầu tiên của mảng và mỗi phần tử trong mảng biểu thị độ dài nhảy tối đa của bạn ở vị trí đó.Trả về true nếu bạn có thể đạt được chỉ số cuối cùng, hoặc sai nếu không.Return true if you can reach the last index, or false otherwise.

Tic là gì

Trò chơi Tic-Tac-Toe dành cho hai người chơi.Một người chơi chơi X và các vở kịch khác O. Người chơi thay phiên nhau đặt điểm của họ trên một mạng lưới các ô ba phần ba.Nếu một người chơi nhất định có ba điểm liên tiếp theo chiều ngang, chiều dọc hoặc đường chéo, thì người chơi đó sẽ thắng trò chơi.

Làm thế nào để bạn tìm thấy sức mạnh của 2 trong Python?

Một phương pháp đơn giản cho điều này là chỉ cần lấy nhật ký của số trên cơ sở 2 và nếu bạn nhận được số nguyên thì số đó là công suất của 2 ..
Một giải pháp khác là tiếp tục chia số cho hai, tức là làm n = n/2 lặp đi lặp lại.....
Tất cả sức mạnh của hai số chỉ có một bộ bit ..