Algorithme : Intervalle de fusion 56. Intervalles de fusion

# 56. Fusionner les intervalles
Étant donné un tableau d'intervalles où intervals[i] = [starti, endi], fusionne tous les intervalles qui se chevauchent et renvoie un tableau des intervalles qui ne se chevauchent pas qui couvrent tous les intervalles de l'entrée.

Exemple 1:

Input: intervals = [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overlap, merge them into [1,6].

Exemple 2 :

Input: intervals = [[1,4],[4,5]]
Output: [[1,5]]
Explanation: Intervals [1,4] and [4,5] are considered overlapping.

Contraintes:

  • 1 <= intervalles.longueur <= 104
  • intervalles[i].longueur == 2
  • 0 <= début <= fin <= 104

1. Fusionner après tri selon le premier numéro

class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        intervals.sort(key=lambda x: x[0])
        res = []
        for item in intervals:
            if not res or res[-1][1] < item[0]:
                res.append(item)
            else:
                res[-1][1] = max(res[-1][1], item[1])
        
        return res

1.1 Interprétation du codeintervals.sort(key=lambda x: x[0])

Ce code utilise la méthode sort() en Python pour trier les intervalles de liste par le premier élément de chaque sous-liste.
L'explication précise est la suivante :

  • intervalles est une liste contenant plusieurs sous-listes, chaque sous-liste représente un intervalle et le premier élément de chaque sous-liste représente la position de départ de l'intervalle.
  • La méthode sort() est utilisée pour trier la liste, où le paramètre clé est une fonction ou une expression lambda utilisée pour spécifier la base du tri.
  • Dans ce code, l'expression lambda lambda x: x[0] est utilisée comme paramètre clé, ce qui signifie trier chaque sous-liste x en fonction du premier élément.
  • Après l'exécution de ce code, la liste des intervalles sera triée selon le premier élément de la sous-liste de petit à grand.
    Par exemple, supposons que la liste des intervalles soit la suivante :
intervals = [[3, 5], [1, 2], [4, 6], [2, 4]]

Après tri, la liste des intervalles devient :

[[1, 2], [2, 4], [3, 5], [4, 6]]

La liste triée est organisée selon le premier élément de la sous-liste de petit à grand. Cet ordre peut être utilisé pour trier les intervalles en fonction de leurs positions de départ pour un traitement ou une analyse ultérieur(e).

1.2 Expliquer les expressions lambda en détail

Les expressions lambda sont un raccourci pour les fonctions anonymes qui nous permettent de créer de petites fonctions uniques dans notre code sans définir explicitement le nom de la fonction.
La syntaxe de base des expressions lambda est la suivante :

lambda arguments: expression

dans:

  1. lambda est un mot-clé qui définit une expression lambda.
  2. arguments est une liste de paramètres, qui peuvent être zéro ou plusieurs paramètres, séparés par des virgules.
  3. expression est une expression décrivant la valeur de retour de la fonction lambda.

Les caractéristiques et l'utilisation des expressions lambda sont les suivantes :

  1.  匿名性:lambda表达式是匿名的,即没有显式指定函数名称,因此通常用于一些简单的、无需重复使用的函数场景。
    
  2.  简洁性:lambda表达式使用简洁的语法,可以在一行代码中定义一个函数。
    
  3.  一次性使用:由于lambda表达式没有函数名称,它通常用于需要在代码中临时定义和使用函数的场景,不会在其他地方重复调用。
    
  4.  返回值:lambda表达式的返回值由表达式部分决定,可以是单个值、表达式结果、函数调用结果等。
    
  5.  可调用性:lambda表达式可以像普通函数一样被调用,通过提供参数来执行表达式,并返回结果。
    
  6.  应用范围:lambda表达式通常用于函数式编程、排序、过滤、映射等操作,以及作为高阶函数的参数。
    

Voici un exemple utilisant des expressions lambda :

add = lambda x, y: x + y 
result = add(2, 3) 
print(result) # Output: 5

Dans cet exemple, l'expression lambda lambda x, y: x + ydéfinit une fonction d'addition simple qui ajoute deux arguments et renvoie le résultat. Ensuite, nous add(2, 3)appelons la fonction lambda, obtenons le résultat 5 et l'affichons.
Les expressions lambda sont très utiles lorsque des définitions de fonctions simples et temporaires sont nécessaires, ce qui peut réduire la complexité et la redondance du code, et améliorer la lisibilité et l'efficacité de l'écriture.

Je suppose que tu aimes

Origine blog.csdn.net/zgpeace/article/details/131777016
conseillé
Classement