LeetCodeのEasy問題を解いて勉強するSwift Binary Search編



LeetCodeのEasy問題を解いて勉強するSwift Binary Search編

新しくSwiftを触ることになりそうなので

ひとまずコードを書いてみることにする。
LeetCodeのEasy問題は比較的解き方を知っている(はず)なので、Python3で書いていた部分をどのような書き方に直すのかを色々思い出しつつ試行錯誤していく。

書いている人のレベル感

Swiftビギナー。基本的な文法すらあやふやなので始めて数日レベルと言っても過言ではない。

LeetCode

お題が与えられ、その内容に合わせてコードを書き、提出して合ってるかどうかを確認できる。
問題はソフトウェアエンジニアのコーディング面接で出されたお題をそのまま引用していることがほとんど。

前回
LeetCodeのEasy問題を解いて勉強するSwift Valid Parentheses編

Binary Search
与えられた配列(数値が入っている)にtargetが存在する場合はその数値が存在するインデックスを、存在しない場合には-1を返す関数を書く。

class Solution {
   func search(_ nums: [Int], _ target: Int) -> Int {
       var left = 0
       var right = nums.count-1
       while left <= right{
           let mid = left + (right-left)/2
           if nums[mid] == target{
               return mid
           }else if nums[mid] < target{
               left = mid+1
           }else{
               right = mid-1
           }
       }
       return -1
   }
}

学べたこと

正直なかった。
変数の宣言とwhile文の書き方とif-else if-else文が書ければ問題なく書ける。

コメント

このブログの人気の投稿

Braveブラウザの同期機能をiPhoneで設定した話。

自作のChrome Extensionをインポートした時に "Invalid value for 'content_scripts[0].matches[0]': Empty path."というエラーが出たので解決した

failed: unable to get local issuer certificate (_ssl.c:1123)と出たので解決した話