LeetCodeのEasy問題を解いて勉強するSwift Two Sum編
LeetCodeのEasy問題を解いて勉強するSwift Two Sum編
新しくSwiftを触ることになりそうなので
ひとまずコードを書いてみることにする。
LeetCodeのEasy問題は比較的解き方を知っている(はず)なので、Python3で書いていた部分をどのような書き方に直すのかを色々思い出しつつ試行錯誤していく。
書いている人のレベル感
Swiftビギナー。基本的な文法すらあやふやなので始めて数日レベルと言っても過言ではない。
LeetCode
お題が与えられ、その内容に合わせてコードを書き、提出して合ってるかどうかを確認できる。
問題はソフトウェアエンジニアのコーディング面接で出されたお題をそのまま引用していることがほとんど。
次回
LeetCodeのEasy問題を解いて勉強するSwift Valid Palindrome編
Two Sum
Two Sum
LeetCodeを始めた大多数の人が恐らく一番最初に解くであろう問題。
一番簡単な二重for文で書いた場合。
ただし遅い。
class Solution {
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
for i in 0..<nums.count {
for j in i+1..<nums.count{
if nums[i] + nums[j] == target{
return [i,j]
}
}
}
return []
}
}
速度を改良した書き方の場合。
class Solution {
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
var seen = [Int:Int]()
for (i,n) in nums.enumerated() {
if let val = seen[target-n]{
return [val,i]
}
seen[n] = i
}
return []
}
}
学べたこと
Swiftでのfor文の書き方(for in文、for in enumerated文)
Swiftでのif文の書き方
Swiftでの辞書型の使い方
コメント
コメントを投稿