目錄
122 買賣股票的最佳時機 ||
55 跳躍游戲
45 跳躍游戲 ||
122 買賣股票的最佳時機 ||
設置變量now代表此時買入的股票,為賦值為Integer.MAX_VALUE,遍歷prices數組,有如下兩種情況:
- 如果比now小說明不能售出,可以用當前price替換now,便于下次賺取更大的利益。
- 如果比now大說明可以售出,res加上二者的差值并且將now賦值為price。
class Solution {public int maxProfit(int[] prices) {int res = 0;int now = Integer.MAX_VALUE;for(int price : prices){if(now > price){now = price;}else{res += price - now;now = price;}}return res;}
}
時間復雜度O(n)
空間復雜度O(1)
55 跳躍游戲
設置變量range代表此時能調到的范圍,初始值為0。
從0遍歷到range,每次都判斷此時nums[i] + i的值是否比當前range大,如果更大則進行更新。
判斷range是否能到達最后一個下標,如果能就返回true,不能就繼續遍歷。
如果到達末尾后也不能到達則返回false。
class Solution {public boolean canJump(int[] nums) {int range = 0;for(int i = 0;i <= range;i++){range = Math.max(range,i + nums[i]);if(range >= nums.length - 1)return true;}return false;}
}
時間復雜度O(n)
空間復雜度O(1)