1.タイトル
昇順で並べ替えられた順序付けられた配列が与えられた場合、それらの合計がターゲット数と等しくなるように2つの数を見つけます。
関数は、これら2つのインデックス値index1とindex2を返す必要があります。index1はindex2より小さい必要があります。
説明:
- 返されるインデックス値(index1およびindex2)はゼロベースではありません。
- 各入力は一意の回答にのみ対応していると想定でき、同じ要素を再利用することはできません。
示例:
输入: numbers = [2, 7, 11, 15], target = 9
输出: [1,2]
解释: 2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。
ソース:LeetCode
リンク:https ://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted
著作権は控除ネットワークに属しています。商用転載の正式な許可書に連絡し、非商用転載の出典を明記してください。
2.問題解決
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
int i = 0, j = numbers.size()-1, sum;
sum = numbers[i]+numbers[j];
while(i < j)
{
sum = numbers[i]+numbers[j];
if(sum == target)
return {i+1,j+1};
else if(sum < target)
i++;
else
j--;
}
return {};
}
};
4 ms 9.4 MB