Leetcode:best_time_to_buy_and_sell_stock_II题解

一、题目

假设你有一个数组,它的第i个元素是一个股票在一天的价格。

设计一个算法,找出最大的利润。

二、分析

如果当前值高于买入值,那么就卖出,同时买入今天的股票,并获利。如果当前值低于买入值,那么就放弃之前的股票,同时买入今天的股票,以待升值,此时也不亏损。

举例:

2 9 6 3 6 1

第1天,买入2;

第2天,9>2,卖出,获利7,并买入9;

第3天,6<9,放弃9,买入6;

第4天,3<6,放弃6,买入3;

第5天,6>3,卖出,获利3,并买入6;

第6天,1<6,放弃6,买入1,结束。

总获利:7+3= 10。

需要注意的是在获取数组的长度时,在vector<int>不能使用length,而是size().

class Solution {
public:
    int maxProfit(vector<int> &prices) {
        int length = prices.size();
        if(length==0) return 0;
        int profit = 0;
        int flag,difference;
        for(flag=1;flag<length;flag++){
        	difference = prices[flag]-prices[flag-1];
        	if(difference>0)
        		profit+=difference;
        }
        return profit;
    }
};
时间: 2024-11-07 16:45:02

Leetcode:best_time_to_buy_and_sell_stock_II题解的相关文章

LeetCode: palindromes 题解

Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the integer to string, note the restriction of using extra space. You could also

LeetCode: LetterCombinations 题解

Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below. Input:Digit string "23" Output: ["ad", "ae", &q

LeetCode: plusOne 题解

Given a non-negative number represented as an array of digits, plus one to the number. The digits are stored such that the most significant digit is at the head of the list. 题目大意: 给定一个由一组数字构成的数组表示的非负整数, 对这个数进行加一操作,并将结果数组返回. 数组的首元素存储的是该非负整数的最高位. 本题比较简

LeetCode(100)题解--Same Tree

https://leetcode.com/problems/same-tree/ 题目: Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally identical and the nodes have the same value. 思路:  DFS AC代码: 1.递归 1

LeetCode(3)题解: Longest Palindromic Substring

https://leetcode.com/problems/longest-palindromic-substring/ 题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 思路: 我的思路是遍

LeetCode(27)题解:Remove Element

https://leetcode.com/problems/remove-element/ Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new length. 思路: 因为可以改变元

LeetCode(26)题解:Remove Duplicates from Sorted Array

https://leetcode.com/problems/remove-duplicates-from-sorted-array/ Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for another array, you must do this

Leetcode(58)题解:Length of Last Word

https://leetcode.com/problems/length-of-last-word/ 题目: Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string. If the last word does not exist, return 0. Note: A word is de

LeetCode(38)题解: Count and Say

https://leetcode.com/problems/count-and-say/ 题目: The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as