最近想要提升一下自己的算法基础,就定了一个小目标:刷完letcode上全部的题目。说做就做,从今天开始,每天坚持做,记录自己的解法和其他优秀的解法,努力学习,提升自己。
1.两数之和
题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
这道题其实是比较简单的,而且限定了每个输入只对应一个答案。我想到了两种解决办法,一种是两层for循环,尝试所有的组合。另外一种是只进行一次轮询,用目标结果减去当前元素的值,获得预期的另一个元素,然后判断这个元素在不在数组中。下面是我给出的两种解法:
1.1 两层for循环穷举法
1.2 一次遍历,判断预期元素
官网的推荐解答和我的解法类似,大家可以自行查看。https://leetcode-cn.com/problems/two-sum/solution/
网友评论