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. Show
Hãy cho chúng tôi xem các bước -
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 raTrue
Cập nhật vào ngày 04-tháng 5 năm 2020 05:54:49
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 leetcodeví dụ 1 Ví dụ 2 ví dụ 1Ví 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ụ 2Cá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 LeetCodeGiả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ụ 1Ví 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ụ 2Cá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 LeetCodeGiả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 - True3 và True4. True3 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. True4, mặt khác, lưu trữ chỉ số của vị trí đó. Chúng tôi sẽ khởi tạo True4 vào chỉ số của phần tử cuối cùng trong True0 vì chúng tôi sẽ lặp lại True0 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 == 00 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 == 01 để lặp qua True0. 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 == 03 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 == 04 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 == 05. 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 == 06 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 == 04 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 == 08, 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 == 05 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 == 06 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 == 01 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 == 08 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 == 05 (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 == 00 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ặpBê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 == 00, 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ử 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 == 00 chạy, chúng tôi sẽ ở phần tử cuối cùng thứ hai trong True0 (tức là tại INDEX 3). True4 lưu trữ chỉ số của phần tử cuối cùng trong True0, là 4. True3 sau đó sẽ là False 2 (trong đó False 3 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ì Do đó, chúng tôi cập nhật giá trị của True4 lên 3 (trên dòng 12). Ở mỗi bước khi chúng tôi lặp lại đến True0, chúng tôi tiếp tục kiểm tra xem có thể đạt được vị trí được chỉ định bởi True4 từ chỉ số hiện tại không. Nếu có, chúng tôi cập nhật giá trị của True4 lên chỉ mục hiện tại. Ví dụ, khi True4 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 True0. Đ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à 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 True4 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 True0. Sau khi vòng lặpSau khi lặp qua tất cả các yếu tố trong True0, nếu giá trị cuối cùng của True4 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 Chúng tôi làm điều đó bằng cách trả về kết quả của điều kiện 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 .. |