1,数组去重

i.暴力去重

思路:建一个空数组,通过判断原数组的元素是否在空数组内,如果在,不放入,不在,放入空数组。

function clearCommnetArray(array){
let arra=[]
array.forEach(item=>{
if(!arra.includes(item)){
arra.push(item)
}
})
return arra
}

ii.Set容器去重法

Set容器内不允许元素重复,我们就利用这点实现元素去重。

function clearCommnetArray(array){
let set=new Set(array)
let arra=[]
for(let item of set){
arra.push(item)
}
return arra
}

2,两数之和

i.暴力解法

就是一个一个拿出来比较。先拿出第一个值和后面的值一个个相加,所以第一层循环需要循环

array.length-1次。

从第二个值开始取值,则第二次初始值是i+1,能循环到最后一个值,循环次数也是array.length-1次。只要符合条件就无需再次进行了。

function sum(nums,target){
for(let i=0,len=nums.length-1;i<len;i++){
for(let j=i+1;j<=nums.length-1;j++){
console.log("ha",nums[i],nums[j]);
console.log(i,j);
if(nums[i]+nums[j]==target){
return [i,j]
}
}
}
}

ii.map映射法

map存放之前的元素和下标,如果这一次的差值在map中的key(匹配到值得元素,说明这个的元素和之前某一个元素之和等于target)

function sum(nums,target){
let map=new Map()
for(let i=0,len=nums.length;i<len;i++){
let a= target-nums[i]
if(map.has(a)){
return [map.get(a),i]
}
map.set(nums[i],i)
}
}

JavaScript一天一个算法题~持续更新中。。。。。的更多相关文章

  1. javascript算法汇总(持续更新中)

    1. 线性查找 <!doctype html> <html lang="en"> <head> <meta charset="U ...

  2. 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)

    Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包 ...

  3. 知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET

    知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET undefined 公司介绍 - 数人科技 undefined

  4. JavaScript资源收集分享,持续更新中。。。

    平时收集的一些JavaScript资源,分享给大家 jQuery UI jEasyUI Extensions http://jqext.sinaapp.com 布局做的挺不错,有比较复杂的菜单导航.P ...

  5. java视频教程 Java自学视频整理(持续更新中...)

    视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...

  6. LeetCode All in One题解汇总(持续更新中...)

    突然很想刷刷题,LeetCode是一个不错的选择,忽略了输入输出,更好的突出了算法,省去了不少时间. dalao们发现了任何错误,或是代码无法通过,或是有更好的解法,或是有任何疑问和建议的话,可以在对 ...

  7. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

  8. 2020年腾讯实习生C++面试题&持续更新中(2)

    2020年腾讯实习生C++面试题&持续更新中(2) hello,大家好~ 我是好好学习天天,天天编程的天天,一个每天都死磕技术,及时分享的技术宅~ 昨天分享的题目不知道大家是否看过了,以后我计 ...

  9. 【前端面试】Vue面试题总结(持续更新中)

    Vue面试题总结(持续更新中) 题目参考链接 https://blog.csdn.net/weixin_45257157/article/details/106215158 由于已经有很多前辈深造VU ...

  10. EOS开发经验总结——不定期持续更新中

    一.新手安装mysql乱码问题 1.数据库安装时设置默认编码格式为UTF8或者打开mysql安装目录下my.ini,变更default-character-set=utf8: 2.打开EOS的Gove ...

随机推荐

  1. 微信iOS消息拦截插件教程-手机越狱环境搭建

    微信iOS消息拦截插件教程-手机越狱环境搭建 标签(空格分隔): ios越狱开发 环境 背景介绍 本教程所有内容免费 本教程来源于一次知识分享,如果有需要了解更多的 请联系QQ:480071411 i ...

  2. css 文本换行的问题

    今天测试再测试功能的时候无意间发现了这个css的bug,我们可以仔细看第一张图的最后两行,明明还没有到结尾就自动换到最后一行去了,按理说应该是撑满当前行再挤到下一行去,于是我就去看了下css的文本溢出 ...

  3. Kafka--Rebalance重平衡

    Rebalance总览 Rebalance触发条件 (1)消费组成员发生变更,有新消费者加入或者离开,或者有消费者崩溃 (2)消费者组订阅的主题数量发生变更 (3)消费组订阅主题的分区数发生变更 避免 ...

  4. Mybatis中#{}和${}的区别:

    简单来说 #{} 会在将参数加上引号,例如:   SELECT * FROM user WHERE username=#{username} ;   带上参数后的SQL语句即:   SELECT * ...

  5. json 对象属性的输出顺序测试,fastJson 有序,jackson,gson无序(需代码中人工按约定来编码)接口数据签名规则

    json 对象属性的输出顺序测试,fastJson 有序,jackson,gson无序(需代码中人工按约定来编码)接口数据签名规则 fastJson会根据对象的字段的首字母来排序.而jackson,g ...

  6. JSR303数据校验使用方法记录

    JSR303并不对应着指定的jar包,而是一种规范,目前hibernate-validator是使用最多的是基于JSR303规范的实现 本文不适合新人观看,要求至少要知道使用方法 Springboot ...

  7. MATLAB神经网络工具箱使用介绍

      本文介绍MATLAB软件中神经网络拟合(Neural Net Fitting)工具箱的具体使用方法.   在MATLAB人工神经网络ANN代码这篇文章中,我们介绍了MATLAB软件中神经网络(AN ...

  8. DELL服务器安装racadm检测服务器硬件状态

    1.下载racadm命令 For Linux 7及以上版本: https://dl.dell.com/FOLDER07423496M/1/DellEMC-iDRACTools-Web-LX-10.1. ...

  9. EIGRP总结

    EIGRP     思科私有,2013年公开,其他厂商不支持,所以用得不是很多     几秒钟就能完成收敛     触发更新,只要网络不发生变化就不会发生更新     按需更新,只更新变化的部分    ...

  10. arm linux 移植 curl

    背景 libcurl是一个跨平台的开源网络协议库,支持http, https, rtsp等多种协议 .libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, ...