classSolution { funccanJump(_nums: [Int]) -> Bool { var lastPosition = nums.count -1 for i instride(from: nums.count -2, through: 0, by: -1) { if i + nums[i] >= lastPosition { lastPosition = i } } return lastPosition ==0 } }
结果
执行用时 : 136 ms, 击败 96.55% 使用 Swift 的用户
内存消耗 : 15.48 MB, 击败 28.74% 使用 Swift 的用户
Kotlin
1 2 3 4 5 6 7 8 9 10 11
classSolution { funcanJump(nums: IntArray): Boolean { var lastPosition = nums.size - 1 for (i in nums.size - 2 downTo 0) { if (i + nums[i] >= lastPosition) { lastPosition = i } } return lastPosition == 0 } }
结果
执行用时 : 276 ms, 击败 96.52% 使用 Kotlin 的用户
内存消耗 : 40.90 MB, 击败 34.78% 使用 Kotlin 的用户
Dart
1 2 3 4 5 6 7 8 9 10 11
classSolution{ bool canJump(List<int> nums) { int lastPosition = nums.length - 1; for (int i = nums.length - 2; i >= 0; i--) { if (i + nums[i] >= lastPosition) { lastPosition = i; } } return lastPosition == 0; } }
结果
执行用时 : 323 ms, 击败 0.00% 使用 Dart 的用户
内存消耗 : 154.08 MB, 击败 100.00% 使用 Dart 的用户
Go
1 2 3 4 5 6 7 8 9
funccanJump(nums []int)bool { lastPosition := len(nums) - 1 for i := len(nums) - 2; i >= 0; i-- { if i+nums[i] >= lastPosition { lastPosition = i } } return lastPosition == 0 }
结果
执行用时 : 43 ms, 击败 80.85% 使用 Go 的用户
内存消耗 : 6.72 MB, 击败 90.81% 使用 Go 的用户
Ruby
1 2 3 4 5 6 7 8 9 10 11
# @param {Integer[]} nums # @return {Boolean} defcan_jump(nums) last_position = nums.length - 1 (nums.length - 2).downto(0) do |i| if i + nums[i] >= last_position last_position = i end end last_position == 0 end
结果
执行用时 : 92 ms, 击败 80.00% 使用 Ruby 的用户
内存消耗 : 211.39 MB, 击败 60.00% 使用 Ruby 的用户
Scala
1 2 3 4 5 6 7 8 9 10 11
objectSolution{ defcanJump(nums: Array[Int]): Boolean = { var lastPosition = nums.length - 1 for (i <- (nums.length - 2) to 0 by -1) { if (i + nums(i) >= lastPosition) { lastPosition = i } } lastPosition == 0 } }