JavaScript 求两数之和
问题描述:给定一个数组,数组里面有两个数,他们的和是 target,求这两个数在数组中的位置。
思路:
- a + b = target
- 已知 target
- 求 a 和 b
function solution(nums, target) { for (let i = 0; i < nums.length; i++) { let a = nums[i] for (let j = i + 1; j < nums.length; j++) { let b = nums[j] if (b === target - a) { console.log(i, j) } } } }
solution([1, 2, 3, 4], 5)
分析:
- 传入 [1, 2, 3, 4]
- 1 和 2、3、4 对比是否等于 target
- 2 和 3、4 对比是否等于 target
- 3 和 4 对比是否等于 target
注意:自己不要和自己对比,就是 a 不能和b相等,因为他是不同的两个数字。
两数之和三数之和都可以这么算
function solution(list, target) { let result = [] for (let i = 0; i < list.length; i++) { for (let j = i + 1; j < list.length; j++) { let a = list[i]; let b = list[j]; if (a + b === target) { result.push([a, b]) } } } return result } function solution(list, target) { let result = [] for (let i = 0; i < list.length; i++) { for (let j = i + 1; j < list.length; j++) { for (let k = j + 1; k < list.length; k++) { let a = list[i] let b = list[j] let c = list[k] if (a + b + c === target) { result.push([a, b, c]) } } } } return result }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论