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]爲零。spa

爲了使問題更容易,全部A,B,C,D具備相同的N長度,其中0≤N≤500。全部整數在-228到228 - 1 的範圍內,結果保證在大多數231 - 1。設計

例:code

 輸入:索引

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

考察知識點:

思路:利用嵌套循環的方式
多行條件判斷
if () {} else if () {} else {}
 
for循環利用索引來遍歷數組
x = A[i];
y = B[i];
z = C[i];
sum=x+y+z;
if sum =0知足條件 input
 
for ... in循環能夠直接循環出Array的索引
var o={};
for(var key in o){
console.log(i); 
console.log(a[i]);      
};
 
1. 兩數之和(2018 8/9 TODO) 

給定一個整數數組和一個目標值,找出數組中和爲目標值的兩個數。作用域

你能夠假設每一個輸入只對應一種答案,且一樣的元素不能被重複利用。get

示例:input

給定 nums = [2, 7, 11, 15], target = 9

由於 nums[0] + nums[1] = 2 + 7 = 9
因此返回 [0, 1]
相關文章
相關標籤/搜索