ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Leecode刷题C语言之找到最靠近0的数字
[打印本页]
作者:
九天猎人
时间:
2025-1-25 20:53
标题:
Leecode刷题C语言之找到最靠近0的数字
实行效果:通过
实行用时和内存消耗如下:
int findClosestNumber(int* nums, int numsSize) {
int res = nums[0]; // 已遍历元素中绝对值最小且数值最大的元素
int dis = abs(nums[0]); // 已遍历元素的最小绝对值
for (int i = 0; i < numsSize; ++i) {
if (abs(nums[i]) < dis) {
dis = abs(nums[i]);
res = nums[i];
} else if (abs(nums[i]) == dis) {
res = fmax(res, nums[i]);
}
}
return res;
}
复制代码
解题思绪:
初始化
:
res 变量被初始化为数组 nums 的第一个元素 nums[0]。这代表当前已遍历元素中绝对值最小且数值最大的元素。
dis 变量被初始化为 nums[0] 的绝对值,表现当前已遍历元素中的最小绝对值。
遍历数组
:
利用一个 for 循环遍历数组 nums,从索引 0 到 numsSize - 1。
比力绝对值
:
在每次迭代中,检查当前元素 nums
的绝对值 abs(nums
)。
更新最小绝对值
:
假如 abs(nums
) 小于当前记载的最小绝对值 dis,则更新 dis 为 abs(nums
),并将 res 更新为当前元素 nums
。这意味着找到了一个新的更小绝对值的元素。
处置惩罚雷同绝对值的环境
:
假如 abs(nums
) 等于当前记载的最小绝对值 dis,则利用 fmax(res, nums
) 更新 res。这意味着在绝对值相等的环境下,选择数值较大的元素。fmax 函数返回两个数中较大的一个。
返回效果
:
遍历完成后,返回 res。此时,res 存储的是数组 nums 中绝对值最小且数值最大的元素。
总结:
该函数的主要目标是找到数组中绝对值最小且数值最大的元素。
通过遍历数组,比力元素的绝对值,并在必要时更新最小绝对值和效果变量来实现这一目标。
在绝对值雷同的环境下,选择数值较大的元素。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4