LeetCode日拱一卒
121.Best Time to Buy and Sell Stock (2018 8/7)
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。
例1:
输入:[7,1,5,3,6,4]
输出:5
说明:在第2天买入(价格=1)并在第5天卖出(价格=6),利润=6-1=5.不是7-1=6,因为售价需要大于购买价格。
例2:
输入:[7,6,4,3,1]
输出:0
说明:在这种情况下,没有进行任何交易,即最大利润=0.
const maxProfit = function(prices) { //price写在里面代表它是会级作用域 const用作块级作用域
if (prices === null || prices.length === 0) {
return 0;
}
var min = Number.MAX_VALUE;
var profit = 0;
var i;
for (i = 0; i < prices.length; i++) {
min = prices[i] < min ? prices[i] : min;
profit = (prices[i] - min) > profit ? prices[i] - min : profit;
}
return profit;
}
454.4Sum II(2018 8/8 未完成)
给定四个列表A,B,C,D的整数值,计算(i, j, k, l)
有多少元组,使其A[i] + B[j] + C[k] + D[l]
为零。
为了使问题更容易,所有A,B,C,D具有相同的N长度,其中0≤N≤500。所有整数在-228到228 - 1 的范围内,结果保证在大多数231 - 1。
例:
输入:
A = [1,2]
B = [-2,-1]
C = [-1,2]
D = [0,2]
输出:
2
说明:
这两个元组是:
1.(0,0,0,1) - > A [0] + B [0] + C [0] + D [1] = 1 +( - 2)+( - 1)+ 2 = 0
2.(1,1,0,0) - > A [1] + B [1] + C [0] + D [0] = 2 +( - 1)+( - 1)+ 0 = 0
考察知识点:
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]