leetcode-01 TwoSum
来源:互联网 发布:四川省旅游 2016 数据 编辑:程序博客网 时间:2024/06/06 08:26
leetcode-01 TwoSum
Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].
刚看到题目就想到了嵌套for循环,但是性能太差,不通过,代码如下
var twoSum = function(nums, target) { for(var i = 0; i < nums.length - 1; i++) { for(var j = i + 1; j < nums.length; j++) { if(nums[i] + nums[j] === target) { // result.push(i, j) // return result; return new Array(i, j); } } }};
优化如下
var twoSum = function(nums, target) { // 复制数组(深拷贝) 用于查询结果索引 var temp = nums.slice(0); // 对数组进行排序 nums = nums.sort(function(a, b) {return a - b;)); // 拿到开始和结束的索引值 var i = 0; var j = nums.length - 1; // 循环结束条件 while(nums[i] + nums[j] != target) { // 大于目标值结束索引向左移动 if(nums[i] + nums[j] > target) { j--; }else { i++; } } // 这里已经获取到目标元素 // 通过目标元素获取原索引值 i = temp.indexOf(nums[i]); j = temp.lastIndexOf(nums[j]); return new Array(i, j);};
0 0
- leetcode-01 TwoSum
- [leetcode]-twoSum
- [leetcode]twoSum
- LeetCode-TwoSum
- 【Leetcode】TwoSum
- LeetCode - TwoSum
- leetcode :twoSum
- leetcode TwoSum
- leetcode twosum
- leetcode--twoSum
- LeetCode twoSum
- LeetCode-TwoSum
- leetcode--twoSum
- leetcode TwoSum
- TwoSum leetcode
- leetcode:twosum
- leetcode:TwoSum
- LeetCode---TwoSum
- android之资源命名索引
- Firebase系列之---Cloud Messaging/Notifications(云消息,推送)的使用
- bzoj 1064: [Noi2008]假面舞会 (图论+DFS)
- UML中聚合和组合的区别
- 【Spring】Spring MVC原理及配置详解
- leetcode-01 TwoSum
- Qt QPushButton 背景色
- 背包问题
- 在阿里云上部署Django应用后,页面403错误,始终无法加载静态文件的解决方案
- Repeater&Validator控件使用
- windows下编写shell脚本Linux下无故报错
- win10+anaconda3(Python3.5)+TensorFlow cpu+spyder版本安装方法
- [python爬虫] 招聘信息定时系统 (二).调用pyinstaller包生成exe文件
- 新环境中奋起的岁月(七)