当前位置: 首页 > news >正文

【JavaScript】LeetCode1-5

文章目录

  • 1 合并两个有序数组
  • 2 移除元素
  • 3 删除有序数组中的重复项
  • 4 删除有序数组中的重复项Ⅱ
  • 5 多数元素

1 合并两个有序数组

在这里插入图片描述

  • 双指针
  • 两个指针分别指向数组的最后一个元素(最大的元素),依次向前比较,把数大的放在num1中(从最后一位往前放)。
/**- @param {number[]} nums1- @param {number} m- @param {number[]} nums2- @param {number} n- @return {void} Do not return anything, modify nums1 in-place instead.*/
var merge = function(nums1, m, nums2, n) {var x = m - 1;var y = n - 1;var l = m + n - 1;while(x >= 0 && y >= 0){if(nums1[x] > nums2[y]){nums1[l--] = nums1[x--];}else{nums1[l--] = nums2[y--];}}while(y >= 0){nums1[l--] = nums2[y--];}
};

2 移除元素

在这里插入图片描述

  • 双指针
  • 从头遍历数组(i),如果和目标元素不同就赋值(j)。
/**- @param {number[]} nums- @param {number} val- @return {number}*/
var removeElement = function(nums, val) {var j = 0;for(var i = 0; i < nums.length; i++){if(nums[i] != val){nums[j++] = nums[i];}}return j;
};

3 删除有序数组中的重复项

在这里插入图片描述

  • 双指针
  • 从头遍历数组(i),i 和 j 指向的元素不相同就赋值。
/*** @param {number[]} nums* @return {number}*/
var removeDuplicates = function(nums) {var j = 0;for(var i = 0; i < nums.length; i++){if(nums[i] != nums[j]){nums[++j] = nums[i];}}return j + 1;
};

4 删除有序数组中的重复项Ⅱ

在这里插入图片描述

  • 双指针
  • 判断前两个元素(j - 2)和当前元素(i)是否相同,若不相同则赋值。
/*** @param {number[]} nums* @return {number}*/
var removeDuplicates = function(nums) {var j = 2;for(var i = 2; i < nums.length; i++){if(nums[j - 2] != nums[i]){nums[j++] = nums[i];}}return j;
};

5 多数元素

在这里插入图片描述

  • Map
  • 遍历数组,存储元素个数。
/*** @param {number[]} nums* @return {number}*/
var majorityElement = function(nums) {let len = nums.length / 2;let count = new Map();for(let n of nums){count.set(n, (count.get(n) || 0) + 1);if(count.get(n) > len){return n;}}   
};

http://www.mrgr.cn/news/5028.html

相关文章:

  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • 音频分割软件有什么?最方便的音频分割软件分享给你
  • Spark-第五周
  • 对话框 Ref或者dom都拿不到详解
  • PHP导出生成PDF文件开源组件:mPDF使用详情
  • Arduino开源四足蜘蛛机器人制作教程
  • DISCUZ论坛中 “阅读权限10“这几个字的修改教程以及后台目录路径修改后的管理路径
  • Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
  • CSP内容安全策略
  • 深度学习 --- VGG16各层feature map可视化(JupyterNotebook实战)
  • RFID光触发标签在多行业的应用与效益差异
  • 并行程序设计基础——组通信(1)
  • 【HTTP学习】HTTP协议
  • 全球财经动态与行业动态概览
  • PHP 过滤器
  • 【分布式缓存】使用Redis、Memcached等工具进行分布式缓存管理
  • 【Redis学习 | 第3篇】在Java中操作Redis
  • EmguCV学习笔记 VB.Net 第4章 图像处理
  • 【数据结构初阶】单链表接口实现超详解
  • python非交互连接mysql+mycat读写分离实现