核心内容摘要
岁月流转,花开四季:中国奶奶在大自然中的成长足迹
1200: 最小绝对差思路排序后只需考虑相邻元素之差把 arr 排序后最小绝对差只能来自相邻元素不相邻的元素之差更大。
遍历 arr 中的相邻元素 (x,y)设绝对差为 diffy−x当前最小绝对差为 minDiff。
如果 diffminDiff那么更新 minDiff 为 diff更新答案为 [[x,y]]。
如果 diffminDiff那么把 [x,y] 添加到答案中。
vectorvectorint ans; ans; ans.push_back({x,y});最外层{}给最外层的vectorvectorint初始化内层{x, y}给里面的第一个vectorint初始化。
如果想再追加别的对只要继续ans.push_back({a, b});即可。
class Solution { public: vectorvectorint minimumAbsDifference(vectorint arr) { int narr.size(),min_diffINT_MAX; ranges::sort(arr); vectorvectorint ans; for(int i1;in;i){ int xarr[i-1],yarr[i]; int diffy-x; if(diffmin_diff){ min_diffdiff; ans; } else if(diffmin_diff) ans.push_back({x,y}); } return ans; } };