【发布时间】:2020-04-25 19:03:15
【问题描述】:
问题陈述:给定一个非负整数数组,您最初位于数组的第一个索引处。 // 一个leetcode问题
我只是对计算它的复杂性感到困惑。 tike 复杂度是多少,您能否推荐任何教授计算 tie 复杂度的书籍或教程
class Solution {
public boolean canJump(int[] nums,int sum,boolean isreach[]) {
if(sum == nums.length-1){
return true;
}
if(sum >= nums.length){
return false;
}
if(isreach[sum]) return true;
int j = nums[sum];
int k = 1;
boolean check = false;
while( k <= j && sum + k < nums.length ){
check = check || canJump(nums, sum+k,isreach);
if(check) {isreach[sum] = check; return true;}
k++;
}
return false;
}
public boolean canJump(int[] nums) {
boolean isreach[] = new boolean[nums.length];
return canJump(nums,0,isreach);
}
}
在我看来,是n^2
【问题讨论】:
-
@maytham-ɯɐɥʇʎɐɯ 假设数组是 [3,3,3,3],所以调用的总数将是 3+2+1+0 = 6 是 n*(n-1)/2 所以它的 n^2
标签: java algorithm data-structures