Il semble que des tests de codage soient menés à l'étranger lors d'entretiens d'ingénieurs, et dans de nombreux cas, l'essentiel est de mettre en œuvre des fonctions et des classes spécifiques en fonction du thème.
Apparemment, de nombreux ingénieurs prennent des mesures sur le site appelé LetCode.
C'est un site qui forme la puissance de l'algorithme qui peut résister au test de codage effectué au début, et c'est un chemin inévitable pour ceux qui veulent faire carrière dans une entreprise de technologie à l'étranger.
Je l'ai écrit en grand, mais je n'ai pas l'intention d'avoir une telle interview pour le moment.
Cependant, en tant qu'ingénieur informatique, il serait préférable d'avoir le même niveau de puissance d'algorithme qu'une personne, alors j'aimerais résoudre le problème de manière irrégulière et écrire la méthode que je pensais à l'époque sous forme de mémo.
Je le résolve avec Python3.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Day51 à partir de zéro "647. Palindromic Substrings"
À l'heure actuelle, je donne la priorité au moyen des 100 questions les plus appréciées. Easy a été résolu, donc si vous êtes intéressé, veuillez vous rendre à la table.
Twitter Je le fais.
1351. Count Negative Numbers in a Sorted Matrix
Le niveau de difficulté est facile.
Étant donné la matrice «grille» de «m * n». Les lignes et les colonnes sont triées dans un format qui ne provoque pas d'augmentation. (Autrement dit, les valeurs des éléments sont conservées ou diminuées dans cet ordre.)
Le problème est de concevoir un algorithme qui renvoie les nombres négatifs qui existent dans cette «grille».
Example 1:
Input: grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]] Output: 8 Explanation: There are 8 negatives number in the matrix.
Example 2:
Input: grid = [[3,2],[1,0]] Output: 0 Example 3:
Example 3: Input: grid = [[1,-1],[-1,-1]] Output: 3
Example 4:
Input: grid = [[-1]] Output: 1
import itertools
class Solution:
def countNegatives(self, grid: List[List[int]]) -> int:
count = 0
lists = []
lists = list(itertools.chain.from_iterable(grid))
for i in lists:
if i < 0:
count += 1
return count
# Runtime: 128 ms, faster than 63.80% of Python3 online submissions for Count Negative Numbers in a Sorted Matrix.
# Memory Usage: 14.9 MB, less than 20.02% of Python3 online submissions for Count Negative Numbers in a Sorted Matrix.
C'est comme ça. Eh bien, je pense que vous pouvez imaginer tourner chaque élément avec une déclaration for pour le moment.
Cependant, certaines personnes peuvent ne pas être aussi familières avec ʻitertools.chain.from_iterable`. N'est-ce pas?
Un autre constructeur pour chain (). Reçoit l'entrée chaînée d'un argument itérable qui est évalué différé. Cette fonction est à peu près équivalente au code ci-dessous:
def from_iterable(iterables): # chain.from_iterable(['ABC', 'DEF']) --> A B C D E F for it in iterables: for element in it: yield element
Comme vous pouvez le voir dans la documentation officielle, cela fonctionne comme ci-dessus.
À propos, chain () a l'explication suivante.
>
itertools.chain(*iterables)
Créez un itérateur qui renvoie tous les éléments du premier itérable, puis tous les éléments du deuxième itérable et tous les éléments de l'itérable. Il est utilisé pour traiter des séquences consécutives comme une seule séquence. Environ équivalent à:
> ```Python
def chain(*iterables):
# chain('ABC', 'DEF') --> A B C D E F
for it in iterables:
for element in it:
yield element
Quelle est la différence! Peut être mais Introduction de chain, chain.from_iterable (pour maîtriser les itertools de python) Il est bien expliqué dans cet article, et je vais le présenter car il est plus rapide d'y faire référence.
L'avantage de Python est que vous pouvez en profiter.
Pour changer l'histoire, j'ai participé à une session d'étude Python (tenue en ligne). J'ai participé à la session d'étude pour la première fois depuis longtemps, donc c'était plus amusant et la mise à jour a été retardée. Je vais écrire un article à ce sujet (probablement Sphinx), alors jetez un œil.
Jusqu'à ici pour cette fois. Je vous remercie pour votre travail acharné.
Recommended Posts