LeetCode #167


167. input array is sorted
1.コード
from typing import List


class Solution:
    def twoSum(self, numbers: List[int], target: int) -> List[int]:
        start, last = 0, len(numbers)-1
        
        while True :
            if target == numbers[start] + numbers[last] :
                return [start+1, last+1]
            
            elif target > numbers[start] + numbers[last] :
                start += 1
            
            else :
                last -= 1
2.解答
  • start開始インデックス0last最終インデックスlen-1に設定
  • binary searchによれば、2つおよびtarget未満の場合、開始インデックスを増加させて範囲を縮小する.
  • targetより大きい場合は、終了インデックスを減らして範囲を縮小します.

  • 2つとtargetが一致する場合、1がインデックスに追加されて返されます.
    (最初にインデックスが返され、+1が返されることが示されました)