leetcode167。2つの数値の和II入力順序付き配列-ダブルポインター

167. 2つの数値の合計II-順序付けられた配列の入力

難易度:シンプル

昇順で配置された順序付けられた配列を前提として、合計がターゲットの数値と等しくなるように2つの数値を見つけます。

関数は2つの添え字値1とindex2を返す必要があります。ここで、index1はindex2より小さい必要があります。

説明:

  • 返される添え字値(index1とindex2)はゼロベースではありません。
  • 各入力は一意の回答にのみ対応すると想定でき、同じ要素を再利用することはできません。

例:

输入: numbers = [2, 7, 11, 15], target = 9
输出: [1,2]
解释: 27 之和等于目标数 9 。因此 index1 = 1, index2 = 2

解決

リストは昇順で並べ替えられているため、ダブルポインターを使用して両側をクリックします。合計が小さい場合は左のポインターが右に移動し、合計が大きい場合は右のポインターが左に移動します((

class Solution(object):
    def twoSum(self, numbers, target):
        """
        :type numbers: List[int]
        :type target: int
        :rtype: List[int]
        """
        l=0;r=len(numbers)-1
        while l<r:
            if numbers[l]+numbers[r]==target:
                return ([l+1,r+1])
            elif numbers[l]+numbers[r]>target:
                r-=1
            else:
                l+=1

おすすめ

転載: blog.csdn.net/qq_45268474/article/details/108455654
おすすめ