返回

初探 Biweekly Contest 73 的技巧:以 2191. Sort the Jumbled Numbers 为例**

后端

关键词:

2191. Sort the Jumbled Numbers 问题分析

在 2191. Sort the Jumbled Numbers 问题中,给定一个整数数组 numbers,其中某些数字被替换为问号 '?', 我们需要找出这些被替换数字的最小排列。

Python 解题步骤

def sortJumbled(numbers):
    """
    :type numbers: List[int]
    :rtype: List[int]
    """
    # 记录原始数字及其对应索引
    num_idx = [(num, idx) for idx, num in enumerate(numbers) if num != '?']
    
    # 根据原始数字排序
    num_idx.sort()
    
    # 恢复排序后的数字到原数组
    for num, idx in num_idx:
        numbers[idx] = num
    
    return numbers

技巧剖析

sorted 函数的应用

Python 的 sorted 函数可对可迭代对象(如列表)进行排序。它根据对象中的元素进行排序,返回一个新列表。在我们的代码中,我们使用 sorted 对 num_idx 列表中的元组进行排序,该列表包含原始数字和它们的索引。

列表推导式

列表推导式是一种简洁地创建列表的方法。它使用 for 循环遍历可迭代对象,并对每个元素执行操作。在我们的代码中,列表推导式 [(num, idx) for idx, num in enumerate(numbers) if num != '?'] 创建了 num_idx 列表,其中包含所有非 '?' 数字及其索引。

索引赋值

在 Python 中,我们可以使用方括号语法对列表元素进行索引赋值。在我们的代码中,for num, idx in num_idx: 语句迭代 num_idx 列表,并将排序后的数字 num 赋值给 numbers 列表中索引为 idx 的元素。

结论

通过本文对 2191. Sort the Jumbled Numbers 题目的分析和 Python 解法的讲解,我们深入了解了列表排序的技巧,包括 sorted 函数、列表推导式和索引赋值。掌握这些技巧将极大地提升我们在编程中的问题解决能力,尤其是涉及列表操作的情形。