news 2026/4/18 7:23:32

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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(相对误差)。

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

感谢大家的三连支持!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:58:13

Wan2.2-T2V-5B如何应对版权争议?内容过滤机制解析

Wan2.2-T2V-5B 内容安全机制深度解析&#xff1a;轻量模型如何应对版权挑战 在短视频内容爆炸式增长的今天&#xff0c;AI生成视频正以前所未有的速度渗透进创作流程。从社交媒体动效到广告素材预览&#xff0c;文本到视频&#xff08;T2V&#xff09;模型已经不再是实验室里的…

作者头像 李华
网站建设 2026/4/13 13:57:06

动态弹窗实时数据展示:lay/layer组件的高效实现方案

动态弹窗实时数据展示&#xff1a;lay/layer组件的高效实现方案 【免费下载链接】layer 项目地址: https://gitcode.com/gh_mirrors/lay/layer 在现代Web应用中&#xff0c;动态弹窗的实时数据展示能力已经成为提升用户体验的关键要素。当我们面对需要频繁更新的监控数…

作者头像 李华
网站建设 2026/4/17 13:17:31

Cangaroo开源CAN总线分析软件:5分钟快速上手终极指南

Cangaroo开源CAN总线分析软件&#xff1a;5分钟快速上手终极指南 【免费下载链接】cangaroo 项目地址: https://gitcode.com/gh_mirrors/ca/cangaroo Cangaroo是一款功能强大的开源CAN总线分析工具&#xff0c;专为汽车电子工程师和嵌入式系统开发者设计。这款免费软件…

作者头像 李华
网站建设 2026/4/17 16:30:04

RTL8852BE Linux驱动终极解决方案:告别Wi-Fi连接问题的完整指南

还在为Linux系统下Realtek RTL8852BE无线网卡无法识别而困扰吗&#xff1f;这款开源驱动项目正是您需要的专业解决方案&#xff0c;提供从基础安装到高级优化的完整技术路径。作为Linux无线网络领域的专业顾问&#xff0c;我们为您呈现这份深度技术指南。 【免费下载链接】rtl8…

作者头像 李华
网站建设 2026/4/18 6:29:40

gpt-oss-20b支持多语言吗?实测中文理解能力

gpt-oss-20b支持多语言吗&#xff1f;实测中文理解能力 在AI模型日益渗透各行各业的今天&#xff0c;一个关键问题浮出水面&#xff1a;我们能否在不依赖云端API、不牺牲数据隐私的前提下&#xff0c;获得足够强大的本地化语言理解能力&#xff1f;尤其是对于中文用户而言&…

作者头像 李华
网站建设 2026/4/18 2:57:24

8、Linux USB 系统:从电源管理到通用驱动的全面解析

Linux USB 系统:从电源管理到通用驱动的全面解析 1. 电源管理与 USB 系统概述 电源管理对于嵌入式系统,尤其是电池供电的系统至关重要。在 Linux 环境中,理解 Linux 电源管理框架的数据结构是掌握 Linux USB 电源管理框架的基础。通过对这些数据结构的深入研究,我们能够更…

作者头像 李华