Es scheint, dass Codierungstests in Ingenieurinterviews im Ausland durchgeführt werden, und in vielen Fällen besteht die Hauptsache darin, bestimmte Funktionen und Klassen entsprechend dem Thema zu implementieren.
Anscheinend ergreifen viele Ingenieure Maßnahmen auf der Website namens LetCode.
Es ist eine Site, die die algorithmische Leistung trainiert, die dem Codierungstest standhält, der in der frühen Geschichte durchgeführt wird, und es ist ein unvermeidlicher Weg für diejenigen, die eine Karriere bei einem ausländischen Technologieunternehmen aufbauen möchten.
Ich habe es groß geschrieben, aber ich habe im Moment keine Pläne für ein solches Interview.
Als IT-Ingenieur wäre es jedoch besser, die gleiche Algorithmusleistung wie eine Person zu haben. Daher möchte ich das Problem unregelmäßig lösen und die Methode, die ich damals dachte, als Memo aufschreiben.
Ich löse es mit Python3.
Letztes Mal Leet Code Day 55 "Ab Null" 22. Klammern erstellen "
Im Moment priorisiere ich das Medium der 100 beliebtesten Fragen. Easy wurde gelöst. Wenn Sie interessiert sind, gehen Sie bitte zum Tisch.
Twitter Ich mache es.
Der Schwierigkeitsgrad ist einfach. Das Problem ist das Array "nums" gegeben. Das Problem ist, dass Sie die Summe aller Zahlen in einer Liste zurückgeben sollten.
Input: nums = [1,2,3,4] Output: [1,3,6,10] Explanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4]. Example 2:
Input: nums = [1,1,1,1,1] Output: [1,2,3,4,5] Explanation: Running sum is obtained as follows: [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1]. Example 3:
Input: nums = [3,1,2,10,1] Output: [3,4,6,16,17]
Constraints:
1 <= nums.length <= 1000 -10^6 <= nums[i] <= 10^6
Es ist ein sogenanntes kumulatives Summenproblem. Dieses Problem selbst ist leicht zu verstehen, daher halte ich es für wichtig, es zu implementieren.
In Bezug auf die Implementierung denke ich, dass sich die Art des Schreibens ändern wird, je nachdem, ob Sie mit Python-Funktionen vertraut sind.
Wenn Sie beispielsweise [itertools.accumulate] kennen (https://docs.python.org/ja/3/library/itertools.html#itertools.accumulate), können Sie Folgendes schreiben:
class Solution:
def runningSum(self, nums: List[int]) -> List[int]:
return itertools.accumulate(nums)
# Runtime: 60 ms, faster than 33.33% of Python3 online submissions for Running Sum of 1d Array.
# Memory Usage: 14.1 MB, less than 33.33% of Python3 online submissions for Running Sum of 1d Array.
Sie können dies verwenden, wenn Sie es kennen, weil Sie es sehr präzise schreiben können, oder wenn Sie sich in einer Umgebung befinden, in der Sie Dokumente frei nachschlagen können.
Sie müssen jedoch auch daran denken, wie man schreibt, wenn Sie es vergessen und von Grund auf neu denken.
Kenchos Denkweise über die kumulative Summe
Kann kumulative Summen schreiben, ohne nachzudenken!
Ich denke, es ist sehr leicht zu lesen und zu verstehen. Wie ich gelesen und gelernt habe, hat die kumulative Summe eine breite Palette von Anwendungen, selbst in AtCoader usw.
class Solution:
def runningSum(self, nums: List[int]) -> List[int]:
i = 1
while i<len(nums):
nums[i] += nums[i-1]
i += 1
return nums
# Runtime: 44 ms, faster than 33.33% of Python3 online submissions for Running Sum of 1d Array.
# Memory Usage: 13.8 MB, less than 100.00% of Python3 online submissions for Running Sum of 1d Array.
Diesmal habe ich es so geschrieben.
Es ist ein grundlegender Teil, also möchte ich es sofort töten können.
Bis hierher für diese Zeit. Danke für deine harte Arbeit.
Recommended Posts