如把数组变成:nums = [1, 2, 3, 4, 5, 6, 7, 8, 9] targei = 9 怎么升级语句
时间: 2023-07-02 18:07:22 浏览: 56
如果你要找到nums数组中两个数之和等于target,可以使用双指针算法来解决,时间复杂度为O(n)。
具体步骤如下:
1. 将nums数组从小到大排序
2. 定义两个指针left和right,分别指向数组的第一个元素和最后一个元素
3. 如果nums[left] + nums[right] == target,则返回[left, right]
4. 如果nums[left] + nums[right] < target,则将left指针向右移动一位
5. 如果nums[left] + nums[right] > target,则将right指针向左移动一位
6. 重复步骤3-5,直到找到符合条件的两个数或left>=right,此时返回None表示没有找到符合条件的两个数。
代码如下:
```
def twoSum(nums, target):
nums.sort()
left, right = 0, len(nums) - 1
while left < right:
if nums[left] + nums[right] == target:
return [left, right]
elif nums[left] + nums[right] < target:
left += 1
else:
right -= 1
return None
```
例如,对于输入`nums = [1, 2, 3, 4, 5, 6, 7, 8, 9], target = 9`,输出为`[0, 7]`,即nums[0] + nums[7] = 1 + 8 = 9。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)