力扣快速排序题
1. 给定一个数组nums和目标值target,出数组中两个数的和等于目标值的下标。
```python
def twoSum(nums, target):
# 用字典存储数组元素和下标
num_dict = {}
for i in range(len(nums)):
complement = target - nums[i]
# 如果complement存在于字典中,说明到了两个数的和为目标值
if complement in num_dict:
python新手快速入门 return [num_dict[complement], i]
# 将当前元素和下标存入字典
num_dict[nums[i]] = i
# 没有到符合要求的两个数,返回空列表
return []
```
示例:
```
输入:nums = [2, 7, 11, 15], target = 9
输出:[0, 1]
解释:nums[0] + nums[1] = 2 + 7 = 9,所以返回[0, 1]。
```
2. 给定一个无序数组nums,要求使用快速排序算法对数组进行排序。
```python
def quickSort(nums):
if len(nums) <= 1:
return nums
pivot = nums[len(nums) // 2] # 选择基准值
left, right, equal = [], [], []
for num in nums:
if num < pivot:
left.append(num)
elif num > pivot:
right.append(num)
else:
equal.append(num)
return quickSort(left) + equal + quickSort(right)
```
示例:
```
输入:[3, 2, 1, 5, 4]
输出:[1, 2, 3, 4, 5]
解释:对数组进行快速排序后,得到有序数组[1, 2, 3, 4, 5]。
```
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论