毕业生必备:9款免费AI论文写作工具,一键生成开题报告与论文大纲
2026/6/30 9:36:22
1200: 最小绝对差
思路:排序后,只需考虑相邻元素之差
把 arr 排序后,最小绝对差只能来自相邻元素(不相邻的元素之差更大)。
遍历 arr 中的相邻元素 (x,y),设绝对差为 diff=y−x,当前最小绝对差为 minDiff。
vector<vector<int>> ans; ans={{x,y}}; ans.push_back({x,y});最外层{}给最外层的vector<vector<int>>初始化;
内层{x, y}给里面的第一个vector<int>初始化。
如果想再追加别的对,只要继续ans.push_back({a, b});即可。
class Solution { public: vector<vector<int>> minimumAbsDifference(vector<int>& arr) { int n=arr.size(),min_diff=INT_MAX; ranges::sort(arr); vector<vector<int>> ans; for(int i=1;i<n;i++){ int x=arr[i-1],y=arr[i]; int diff=y-x; if(diff<min_diff){ min_diff=diff; ans={{x,y}}; } else if(diff==min_diff) ans.push_back({x,y}); } return ans; } };