zoukankan      html  css  js  c++  java
  • 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

    考察知识点:

    思路:利用嵌套循环的方式
    多行条件判断
    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) 

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

    你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]


  • 相关阅读:
    算法入门7:分支限界法
    算法入门5:贪心算法
    算法入门4:动态规划
    变量
    Java标识符
    Java中的关键字
    Groovy 配置环境变量
    Robot Framework学习笔记(一)------环境搭建
    关于谷歌浏览器(chrome)的一些好用的插件推荐
    关于UML方法学图中类之间的关系:依赖,泛化,关联
  • 原文地址:https://www.cnblogs.com/EdisonVan/p/9436092.html
Copyright © 2011-2022 走看看