[不定时一题]Leetcode两数之和
时间:2022-07-25
本文章向大家介绍[不定时一题]Leetcode两数之和,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Leetcode第一天
今天又是神奇的一天,今天是小编默默的打开了Leetcode
题库的第一天,初生牛犊不怕虎,开足马力就是干。
最开始看到简单两个字,还是信息十足。但是读了3遍题目之后,整个人都沙雕了,扪心自问“我这也太菜了吧,读了3遍题目,脑子一片空白"。
接着疯狂读题,疯狂读题,上手就是暴力操作:
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
for(var i = 0;i<nums.length;i++){
for(var j =i+1;j<nums.length;j++){
if(nums[i]+nums[j]==target){
return [i,j]
}
}
}
};
然后高兴得点击了执行代码的按钮,发现预期的结果还是正确的,完成了运行时间160ms
,内存消耗38MB
。
我的天呐,这也行,但是越想越不对劲,题目中有一句话数组中同一个元素不能使用两遍
,我这个写法存在同一元素使用多次的问题,这就不太开心了,继续发奋图强。
既然同一元素不能使用两遍,那么改变思路,设置一个空的集合,使用目标值减去数组中的值,结果如果存在于集合中那么返回下标,如果不存在放到集合中,因为Set
集合会自动去重,所以就不再在同一元素的问题了。
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
var num = new Set();
for(var i = 0;i<nums.length;i++){
if(num.has(target-nums[i])){
return [nums.indexOf(target-nums[i]),i]
}else{
num.add(nums[i])
}
}
};
再次提心吊胆的点击了执行代码的按钮,结果如下:
在运行时间上提升了一半时间80ms
,内存消耗毫无变化。
最后
本文结束,有什么问题和有错误的地方,欢迎大家的留言和评论,还有后续更新,下期更加精彩 ”
- ES6 主要的新特性
- thinkphp生成的验证码不显示问题解决
- 深入剖析Spring(二)——IoC容器的实现
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
- 深入剖析Spring(一)——IoC的基本概念(从面向对象角度介绍)
- Restful安全认证及权限的解决方案
- Java并发容器大合集
- Java并发编程的艺术(九)——批量获取多条线程的执行结果
- web.xml中load-on-startup的作用
- Java并发编程的艺术(七)——Executors
- Java并发编程的艺术(八)——闭锁、同步屏障、信号量详解
- PowerDesigner使用教程|使用方法
- Java并发编程的艺术(一)——并发编程需要注意的问题
- 梯度下降法快速教程 | 第三章:学习率衰减因子(decay)的原理与Python实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法