问题描述
https://leetcode.com/problems/jump-game/submissions/
解决思路
举个例子:[2,3,1,4,3]
一开始在2的位置,此时既可以跳到3和1,然后在3的地方可以跳到1,4,3.此时已经到队尾,返回true.解题核心思路就是用reach记录下能到达的最远距离(每次迭代的时候,在上一次的reach和当前nums[i]+i中取得最大值),如果reach大于等于队尾,则返回true就行了。
代码
class Solution {
public int lengthOfLastWord(String s) {
//corner case
if(s == null || s.length() == 0 || s == " ") return 0;
int count = 0, ans = 0;
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == ' '){
count = 0;
}else{
count++;
ans = count;
}
}
return ans;
}
}
复杂度分析
- 时间复杂度:O(n)
- 空间复杂度:O(1)