力扣快速排序题
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小时内删除。