美文网首页
算法——数组常见初级题(JS)

算法——数组常见初级题(JS)

作者: 喜悦的狮子 | 来源:发表于2022-06-21 23:28 被阅读0次

一、解法:双指针——快慢指针

  1. Leetcode 26 删除排序数组中的重复项
    解题思路:
    两个指针都指向数组的一个数,一个指针用来顺序遍历,一个指针用来更新数组。
  2. 初始化指针。
  3. 遍历,如果当前项大于更新数组的指针指向的项就更新数组,让更新指针向下走一位。
  4. 返回数组长度
    var removeDuplicates = function(nums) {
    if(nums.length === 0) return 0; // 边界
    let fast = 0, slow = 0; // 两个指针
    for(let fast=0; fast < nums.length; fast++) {
    if (nums[i] > nums[j]) {
    slow++;
    nums[j] = nums[i];
    }
    }
    return slow + 1;
    };
    二、解法:贪心
  5. Leetcode 122 卖股票的最佳时机
    解题思路:
    贪心即局部最优,见好就收,在每次子问题的时候都取最优解以期待整体最优。
  6. 新建 1个变量用来统计总记录
  7. 遍历价格数组,如果当前价格比昨天高就在昨天买今天卖,否则就不进行交易。
  8. 返回利润之和
    var maxProfit = function(prices) {
    let profit = 0;
    for (let i = 1; i < prices.length; i+=1) {
    if (prices[i] > prices[i - 1]) {
    profit += prices[i] - prices[i-1]
    }
    }
    return profit;
    };
    三、解法:纯数组转换
  9. Leetcode 189 旋转数组
    解题思路:把数组末尾的数截去后放到首部
    注意要把截取数字跟数组的长度取余
    var rotate = function(nums, k) {
    const length = nums.length
    k = k % nums.length;
    let addArr = nums.splice(length - k, k);
    return nums.unshift(...addArr)
    };
    四、解法:哈希表
  10. Leetcode 217 存在重复元素
    解题思路:
    用空间换时间,遍历数组如果数组中存在就返回 true,如果不存在就把当前值挂到数组里。
    var containsDuplicate = function(nums) {
    let map = new Map();
    for(let i of nums){
    if(map.has(i)){
    return true;
    }else{
    map.set(i, 1);
    }
    }
    return false;
    };

相关文章

  • 算法——数组常见初级题(JS)

    一、解法:双指针——快慢指针 Leetcode 26 删除排序数组中的重复项解题思路:两个指针都指向数组的一个数,...

  • js面试常见算法题

    数组去重 洗牌算法 写一个函数,统计字符串里出现出现频率最多的字符 冒泡排序

  • 前端常见算法题(数组篇)

    一、和问题 2020.09.21 No.1 两数之和 给定一个整数数组 nums 和一个目标值 target,请你...

  • 字节跳动iOS面试算法题——当前数组中没有的最小正整数

    背景 社畜初级程序员面试头条iOS开发,被完虐。其中一个算法题如下: 给定一个整数数组,输出当前数组中没有的最小正...

  • 02.python算法题练习

    今日算法题,涉及到常见简单的知识点,双指针,另外注意range数组越界的问题 1、给你一个 升序排列 的数组 nu...

  • JS初级算法

    判断回文字符串: 如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是 palin...

  • leetcode官方《初级算法》题集(一)数组

    一、给定两个数组,编写一个函数来计算它们的交集。 1:哈希表 由于同一个数字在两个数组中都可能出现多次,因此需要用...

  • 常用数组算法

    Array是js里的内置对象,也是我们最常用的一种,在这里我们整理一下常见的简单算法 1.数组去重 数组去重是面试...

  • 排序算法

    常见的排序算法 常见的排序算法有:插入、希尔、选择、冒泡、归并、快速、堆排序。。。 插入排序 算法步骤一、从数组的...

  • JS文集的目录

    js基础心法 深浅拷贝(递归)深浅拷贝(首层浅拷贝) js 数据处理 数组对象查找的常见操作数组对象去重的常见操作...

网友评论

      本文标题:算法——数组常见初级题(JS)

      本文链接:https://www.haomeiwen.com/subject/ntdyvrtx.html