当前位置: 首页 > news >正文

12.15 - 两数之和 两个浮点类型不可以直接判断相等以及解决方案

目录

1.两数之和

a.核心思想

b.思路

c.步骤

2.两个浮点类型不可以直接判断相等以及解决方案

a.例子1

b.例子2

c.解决方案


1.两数之和

1. 两数之和 - 力扣(LeetCode)https://leetcode.cn/problems/two-sum/description/

class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { // 用于存储数值及其索引的哈希表 unordered_map<int, int> mmap; for(int i = 0; i < nums.size(); i++) { // 计算目标值与当前值的差值 int num = target - nums[i]; if(mmap.find(num) != mmap.end()) { // 如果差值存在于哈希表中,返回结果 return {mmap[num], i}; } // 将当前数值及其索引存入哈希表 mmap[nums[i]] = i; } return {}; } };

a.核心思想

利用哈希表(或字典)存储数组元素值及其下标,通过一次遍历快速查找是否存在满足两数之和为目标值的另一个元素。

b.思路

遍历数组,对于每个元素,计算目标值与该元素的差值,查看差值是否在哈希表中,若在则找到答案;若不在则将当前元素值及其下标存入哈希表,继续遍历。

c.步骤

① 初始化一个空的哈希表。

② 遍历数组nums,对于每个元素nums[i]

  • 计算complement = target - nums[i]

  • 检查complement是否在哈希表中,若在则返回[hash[complement], i]

  • 若不在,将nums[i]作为键,i作为值存入哈希表。

③ 遍历结束若未找到则返回空数组(题目假设有答案,此步可省略异常处理)。

2.两个浮点类型不可以直接判断相等以及解决方案

a.例子1

0.1 + 0.2 == 0.3→ 实际计算可能为0.30000000000000004(二进制浮点表示误差),直接判断不等。

b.例子2

1.0 / 3.0 * 3.0 == 1.0→ 除法后乘法可能因舍入误差导致不等于1。

c.解决方案

用误差范围判断,如abs(a - b) < 1e-9(绝对误差)或abs(a - b) / max(|a|, |b|) < 1e-9(相对误差)。

希望这些内容对大家有所帮助!

感谢大家的三连支持!

http://www.gsyq.cn/news/106341.html

相关文章:

  • PlayCover终极指南:在Apple Silicon Mac上运行iOS游戏的完整教程
  • 中国科学技术大学ustcthesis模板参考文献格式最新完整指南:快速解决本科论文排版问题
  • Wan2.2-T2V-A14B助力内容创作者告别传统剪辑?
  • MOOTDX股票数据分析实战指南:从入门到精通掌握通达信数据接口
  • Ascend C内存越界访问的“侦探术“:从错误地址到Buffer/Tensor安全
  • 17、深入探究Linux USB调试与测试方法
  • 18、Linux USB 设备测试与回归工具详解
  • 火山引擎推出Qwen-Image-Edit-2509专属GPU算力套餐
  • Wan2.2-T2V-A14B时序连贯性优化背后的黑科技
  • Windows触控板三指拖拽终极指南:从零配置到专家级技巧
  • 百度搜索不到Qwen-Image?教你从HuggingFace镜像网站快速获取
  • GitHub镜像网站加速LLama-Factory依赖库安装,提升构建速度5倍以上
  • 基于ACE-Step镜像的AI音乐创作实战:从零开始生成你的第一首曲子
  • HuggingFace镜像网站资源推荐:Qwen-Image使用体验分享
  • ITK-SNAP医学图像分割终极指南:从入门到精通的高效方法
  • C语言实现求字符串长度函数(附带源码)
  • 强化学习第五课 —— TRPO 深度剖析:在黎曼流形上寻找最优步长的数学艺术
  • 如何通过两行JavaScript代码实现网站多语言国际化?
  • Lostlife2.0角色对话系统升级:基于LLama-Factory微调剧情模型
  • CompressO终极视频压缩指南:3步实现95%体积缩减
  • B站视频解析新方案:快速获取播放地址的技术实践
  • SpringAI框架接入-jdk升级21后报错“run failed: Unsupported class file major version 65”
  • Typora官网式简洁界面设计灵感:应用于ACE-Step前端UI优化
  • 发邮件1、创建邮箱
  • FLUX.1-dev模型本地部署教程:从Git Clone到PyTorch安装全流程
  • Maccy剪贴板管理器兼容性深度测评:从系统适配到用户体验的全面解析
  • Docker Compose编排ACE-Step微服务架构:模块化部署更灵活
  • Yolo家族新搭档:Qwen-Image为视觉任务生成高质量提示图
  • HunyuanVideo-Foley模型部署实践:基于OpenSpec的容器化方案
  • Grammarly Premium自动获取工具:3分钟解锁高级语法检查功能