1.题目
题目链接:https://leetcode-cn.com/problems/two-sum/
描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数。
2.步骤
(1)求目标值与数组的差;
(2)求该差值与原数组的交集,即为所求的答案;
(3)排序;
(4)取出所有的数组对。
3.代码
clear
clc
nums = [2, 7, 11, 15, 4, 5];
target = 9;
d = target - nums;%目标值与数组的差
answer = intersect(nums,d);%求两者交集,即为满足要求的数组对集合
answer = sort(answer);
L = length(answer);
F_answer = [answer(1:1:L/2);answer(4:-1:L/2+1)];%取出所有的数组对
S = size(F_answer);
%打印出结果
for i = 1:S(2)
fprintf('第%d组和为目标值的数对为[%d %d]\n', i, F_answer(1,i), F_answer(2,i));
end
输出结果
第1组和为目标值的数对为[2 7]
第2组和为目标值的数对为[4 5]