LeetCode 121. Best Time to Buy and Sell Stock
2016-10-06 00:00
423 查看
121. Best Time to Buy and Sell Stock
Say you have an array for which the ith element is the price of a given stock on day i.If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.
Example 1:
Input: [7, 1, 5, 3, 6, 4] Output: 5 max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)
Example 2:
Input: [7, 6, 4, 3, 1] Output: 0 In this case, no transaction is done, i.e. max profit = 0.
这题目是今年携程秋招算法的第二题,卡了我半天。
原因在于携程没有写 Example 2,就是不交易的情况。
国内的算法考试不知道是故意的还是没上心,题目解释的太少了,各种陷阱。
题目非常简单,怎么做两个循环都出来了。用DP的话O(n)就行
public class Solution { public int maxProfit(int[] prices) { if(prices.length==0){ return 0; } int balance=0; int min = prices[0]; for(int i=1;i<prices.length;++i){ balance = Math.max(balance,prices[i]-min); min = Math.min(min,prices[i]); } return balance; } }
相关文章推荐
- [Leetcode 36] 119 Pascal's Triangle II
- LeetCode Wildcard Matching 优化动态规划法和迭代算法
- [LeetCode]Climbing Stairs
- [LeetCode] Word Break
- Insertion Sort List 【leetcode】
- LeetCode | Best Time to Buy and Sell Stock
- LeetCode:Pascal's Triangle II
- [LeetCode]199.Binary Tree Right Side View
- [LeetCode]Anagrams
- leetcode116 Populating Next Right Pointers in Each Node
- leetcode 201: Bitwise AND of Numbers Range
- leetcode Find Minimum in Rotated Sorted Array(需要复习)
- leetcode -- Find Peak Element -- 找波峰--重点
- 111. Minimum Depth of Binary Tree LeetCode
- LeetCode-24.Swap Nodes in Pairs
- LeetCode 5. Longest Palindromic Substring
- 【leetcode】155. Min Stack
- LeetCode-Palindrome Permutation II
- LeetCode-Third Maximum Number
- 【leetcode】81. Search in Rotated Sorted Array II【java】