只要比前一天有利润则卖掉
1 class Solution { 2 public: 3 int maxProfit(vector<int>& prices) { 4 int result = 0; 5 for(int i = 1; i < prices.size(); i++){ 6 if(prices[i] > prices[i-1]){ 7 result += prices[i] - prices[i-1]; 8 } 9 } 10 return result; 11 } 12 };
计算覆盖范围,从0遍历到这个范围最后,如果范围包含最后一个元素,则为true
1 class Solution { 2 public: 3 bool canJump(vector<int>& nums) { 4 if(nums.size() <= 1) return true; 5 int cover = 0; 6 for(int i = 0; i <= cover; i++){ 7 cover = max(cover,i + nums[i]); 8 if(cover >= nums.size() - 1) return true; 9 } 10 return false; 11 } 12 };
1 class Solution { 2 public: 3 int jump(vector<int>& nums) { 4 if(nums.size() == 1) return 0; 5 int cur_max = 0; 6 int result = 0; 7 int next_max = 0; 8 for(int i = 0; i < nums.size(); i++){ 9 next_max = max(i + nums[i],next_max); 10 if(i == cur_max){ 11 result ++; 12 cur_max = next_max; 13 if(cur_max >= nums.size() - 1) break; 14 } 15 } 16 return result; 17 } 18 };
浙公网安备 33010602011771号