ArrayをSwiftで解説する2020/11/22に公開iOSSwift競技プログラミングAtCoderLeetCodetech元の問題は英語なので、代わりに翻訳したものを記載しています。回答はあくまでも例であり、他の方法も存在します。medium昇順の整数配列'nums'と整数'target'が与えられます。'nums'があらかじめ知らないピボットで回転されているとします。以下の工程を行うことで結果を得ることができます。search)を用いる方法の2つを紹介します。いう関数が用意されており、こちらを使用するとワンライナーで書くことができます。返すようになっています。返すようにしています。こちらを使用するのは競技プログラミングにおいては反則のようなものなので、アルゴリズムを使ったものを見ていきましょう。二分探索というのは、普通に探索すると時間がかかってしまうものを、範囲を絞って探索することで早く見つけられるアルゴリズムになります。今回は詳しく説明しないので、以下を見ておくと良いでしょう。二分探索を適用したコードは以下のようになります。-1}今回の問題では「昇順の整数配列があらかじめピボットで回転されている」という条件があるので、こちらを考慮することが求められています。コードを細かく見ていきます。解答はいくつか存在しますが、核となる二分探索のコード部分はだいたい同じような書き方になるでしょう。探すために、条件の「昇順である」ということを利用します。その配列内にあるかどうかを探すことができるからです。関数などは使わない前提で)つまり、二分探索で間をとった場合に、どちらが単調増加(昇順を保ったまま)なのかを判断していくことになります。あるのかを見ていきます。範囲を狭めていき、中間点と値が一致したものを返します。記載してしまったので少しわかりずらかったでしょう。mid}となり、少しわかりやすくなったでしょう。-1という形で結果を返してあげます。DevRelバッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。