preguntas de la entrevista leetcode 10.01. Ordenado de fusión Fusión LCCI especie de doble matriz de punteros
leetcode de marzo de 2020 sea un diario cuestión golpe
entrevista programador de oro
Título: dada la matriz A y B, los dos ordenados donde el terminal A es suficiente espacio de memoria intermedia para acomodar B. Un método para la preparación de la A y B incorporado tipo. Inicializar el número de elementos A y B son m y n.
Ejemplo:
Entrada:
A = [1,2,3,0,0,0], m 3 =.
B = [2,5,6], n- = 3.
De salida: [1,2,2,3,5,6 ]
Descripción: a.length == n + m
Fuente: Botón de estancia (LeetCode)
enlace título original: https: //leetcode-cn.com/problems/sorted-merge-lcci
Ideas: Python: La forma más fácil es poner A, B, reordenando A. El segundo método es el uso de A y B han sido condiciones clasificadas utilizandodoble puntero.
Detalles: Esta pregunta es el valor de retorno es una matriz de la matriz A debe ans tan profundamente copiar en la A: A [:] = ans
código:
class Solution(object):
def merge(self, A, m, B, n):
"""
:type A: List[int]
:type m: int
:type B: List[int]
:type n: int
:rtype: None Do not return anything, modify A in-place instead.
"""
# 双指针
pa=0
pb=0
ans=[]
while not(pa==m and pb==n):
if pa == m:
ans.append(B[pb])
pb+=1
continue
if pb == n:
ans.append(A[pa])
pa+=1
continue
if A[pa]>B[pb]:
ans.append(B[pb])
pb+=1
continue
if A[pa]<B[pb]:
ans.append(A[pa])
pa+=1
continue
if A[pa]==B[pb]:
ans.append(A[pa])
ans.append(B[pb])
pa+=1
pb+=1
continue
A[:]=ans
return A
Este blog es una obra original, dio la bienvenida a la guía, reproduce, por favor indique la fuente, adjuntar un enlace a este artículo, gracias