Report the indices of two numbers which sum up to the target value in a sorted list

3 vues (au cours des 30 derniers jours)
Hi community,
I have a question as below:
How do you report the indices of two numbers which sum up to the target value in a sorted list (no repeating numbers).
Example would be like
nums = [1,2,3,4,7,8,10,11], target = 10, ans = [(1, 5), (2, 4)]
def uniqueSum(nums -> List[int], target -> int):
return

Réponses (1)

Walter Roberson
Walter Roberson le 16 Fév 2023
nums = [1,2,3,4,7,8,10,11];
target = 10
target = 10
[r,c] = find(triu(nums + nums.' == target));
[r,c]
ans = 2×2
3 5 2 6
You would use a different strategy if the array was significantly longer.
Note: there is a completely different strategy available for the case of sorted inputs only which involes looping and has a much lower computational complexity.

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by