2026/1/12 1:27:57
网站建设
项目流程
大连 网站建设,江西合创建设工程有限公司 网站,哪里有做网站优化的公司,不带地域的公司名称怎么注册目录
1.两数之和
a.核心思想
b.思路
c.步骤
2.两个浮点类型不可以直接判断相等以及解决方案
a.例子1
b.例子2
c.解决方案 1.两数之和
1. 两数之和 - 力扣#xff08;LeetCode#xff09;https://leetcode.cn/problems/two-sum/description/
class Solution {
publi…目录1.两数之和a.核心思想b.思路c.步骤2.两个浮点类型不可以直接判断相等以及解决方案a.例子1b.例子2c.解决方案1.两数之和1. 两数之和 - 力扣LeetCodehttps://leetcode.cn/problems/two-sum/description/class Solution { public: vectorint twoSum(vectorint nums, int target) { // 用于存储数值及其索引的哈希表 unordered_mapint, 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.例子10.1 0.2 0.3→ 实际计算可能为0.30000000000000004二进制浮点表示误差直接判断不等。b.例子21.0 / 3.0 * 3.0 1.0→ 除法后乘法可能因舍入误差导致不等于1。c.解决方案用误差范围判断如abs(a - b) 1e-9绝对误差或abs(a - b) / max(|a|, |b|) 1e-9相对误差。希望这些内容对大家有所帮助感谢大家的三连支持