zoukankan      html  css  js  c++  java
  • leetcode刷题吧

    排列

    从排序的数组中删除重复项

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var removeDuplicates = function(nums) {
        const ret=[];
        for(let v of nums){
            
             if(ret.indexOf(nums[v]) === -1){
                ret.push(nums[v]);
               
            }
              console.log(ret);
        }
           console.log(ret);
               return ret;
         
    };
    
    
    
    /**
     * @param {number[]} nums
     * @return {number}
     */
    var removeDuplicates = function(nums) {
       
      var tmpObj = {};
    var result = [];
     Array.from(new Set(nums)).forEach(function(a) {
      var key = (typeof a) + a;
      if (!tmpObj[key]) {
        tmpObj[key] = true;
        result.push(a);
      }
    });
    console.log(result);
        
    };
    
    

    一行代码实现数组去重(ES6)

    1. ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如:
     let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
     let set = new Set(array);
     console.log(set);
     // => Set {1, 2, 3, 4, 5}
    
    1. ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node List,以及ES6中新增的Set和Map等可遍历对象,如:
     let set = new Set();
     set.add(1).add(2).add(3);
     let array = Array.from(set);
     console.log(array);
     // => [1, 2, 3]
    

    于是,现在我们可以用一行代码实现数组去重了:

    let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4]));
    console.log(array);
    // => [1, 2, 3, 4]
    

    附:ES5实现数组去重

    var array = [1, '1', 1, 2, 3, 2, 4];
    var tmpObj = {};
    var result = [];
    array.forEach(function(a) {
      var key = (typeof a) + a;
      if (!tmpObj[key]) {
        tmpObj[key] = true;
        result.push(a);
      }
    });
    console.log(result);
    // => [1, "1", 2, 3, 4]
    

    最好的时机买卖股票II

    假设你有一个数组,其中第i 个元素是第i天给定股票的价格。
    设计一个算法来找到最大的利润。您可以根据需要完成尽可能多的交易(即多次买入和卖出一次股票)。但是,您不可以同时进行多笔交易(即您必须在再次购买之前出售股票)。

    var maxProfit = function(prices) {
       return Math.max(prices)
    };
    

    下面是扩展运算符取代apply方法的一个实际的例子,应用Math.max方法,简化求出一个数组最大元素的写法。

    // ES5 的写法
    Math.max.apply(null, [14, 3, 77])
    
    // ES6 的写法
    Math.max(...[14, 3, 77])
    
    // 等同于
    Math.max(14, 3, 77);
    

    上面代码中,由于 JavaScript 不提供求数组最大元素的函数,所以只能套用Math.max函数,将数组转为一个参数序列,然后求最大值。有了扩展运算符以后,就可以直接用Math.max了。

    我还会回来的

  • 相关阅读:
    C 语言的读取文件
    [Water]序号呼唤
    [Water]Hdu 1022 Train Problem I
    [Water]Hdu 2054 A == B ?
    Java竞赛可能会用到的东西
    [Huffman]Hdu 2527 Safe Or Unsafe
    [Prim]Poj 1258 Agri-Net
    Hdu 1257 最少拦截系统 (LIS、贪心)
    [Max Sum]hdu 1003
    Hdu 2566 统计硬币
  • 原文地址:https://www.cnblogs.com/yc8930143/p/8531663.html
Copyright © 2011-2022 走看看