Problem 55

Jump Game

Posted by Ruizhi Ma on July 29, 2019

问题描述

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;
    }
}

复杂度分析

  1. 时间复杂度:O(n)
  2. 空间复杂度:O(1)