(JS)LeetCode之路001-Two Sum
来源:互联网 发布:bluehost域名跳转 编辑:程序博客网 时间:2024/06/05 22:53
javascript的LeetCode之路001。
题目:给定一组整数,将两个数的返回指数相加,使它们相加成一个特定的值。
您可以假设每个输入都有一个解决方案,不要使用相同的元素两次。(来自百度翻译)。
要求提要:在一个数组中找出两个数相加等于目标值的(这里是16),数组中的每个值只能用一次。
我的代码:
var a=[1,2,3,4,5,3,6,47,4,32,434,534,10,9,12,-1,16,8];console.log(a);var b=new Array();var c=new Array();var d=new Array();var e=new Array();var f=new Array();var g=new Array();//第一步,获取小于16的值,并把它们的key保存在c数组中for(let i=0;i<a.length;i++){if(a[i]<=16){b.push(a[i]);c.push(i);}}//第二步,获取9-b的差值,存到d中for(let j=0;j<b.length;j++){d[j]=16-b[j];//第三步,在a中去查找d。e[j]=a.indexOf(d[j]);//处理结果if((e[j]!=-1)&&(e[j]!=c[j])){if((g.indexOf(e[j])==-1) &&(f.indexOf(e[j])==-1) ){g.push(e[j]);f.push(c[j]);}}}//输出答案for(let i=0;i<g.length;i++){console.log(f[i]+','+g[i]);}
我的代码思路应该是很普通的,一步一步的走,虽然也能得到结果,可是进行的步骤也比较多。
var a=[1,2,3,4,5,3,6,47,4,32,434,534,10,9,12,-1,16,8];var num=16;var b = [];var map={};for(let i=0;i<a.length;i++){if(map[num-a[i]]!=undefined){b[0]=num-a[i];b[1]=i;console.log(b);}map[a[i]]=i;}
大神思路关键就在上面红字部分,感觉简单暴力!!!
可见,思路不同代码量可以节省很多。程序新手上路,请多指教!
阅读全文
0 0
- (JS)LeetCode之路001-Two Sum
- leetcode之路001 Two Sum
- leetcode之Two Sum
- LeetCode 之 Two Sum
- LeetCode之Two Sum
- LeetCode之Two Sum
- leetcode之two Sum
- leetcode之Two Sum
- leetcode 之Two Sum
- LeetCode 之 Two Sum
- LeetCode之Two Sum
- leetcode之two sum
- Leetcode之Two Sum
- leetcode之Two Sum
- leetcode之Two Sum
- leetCode之 Two Sum
- leetcode之two sum
- LeetCode之Two Sum
- IOCP完成端口的一个简单封装类
- 转 Windows+VS2013爆详细Caffe编译安装教程
- 将Linux的私钥文件.id转换为Putty的ppk文件
- Linux平台下停止后台进程脚本编写
- 数据结构与算法——希尔排序
- (JS)LeetCode之路001-Two Sum
- 定义一个2维数组3行4列,求数组平均值最大值最小值js
- IDEA+Gradle+SpringBoot+SpringDataJPA+lambok(lombok有点问题)(一)
- 性能测试
- Linux系统调用原理
- 用props在外部子组件中使用父组件的数据
- LeetCode算法题——Longest Substring Without Repeating Characters
- Android获取视频某一帧图片
- VM虚拟机-物理机文件传输的设置方法