DW(Leetcode)

D1枚举算法

一一列举所有可能的答案

也叫穷举法

例如水仙花术

右侧代码通过条件 X+Y+Z=100 得出Z

简化计算

你的代码尝试解决的问题是“两数之和”,即从数组中找到两个数,它们的和等于给定的目标值 target,然后返回这两个数的索引。下面是你提供的代码,并指出其中的错误和需要改进的地方:

错误和改进点

  1. 语法错误:

    • len(nums) 应该改为 nums.size(),在 C++ 中获取 vector 的长度应该使用 size() 方法。

    • 条件表达式 if target = nums[i] + nums[j] 应改为 if (target == nums[i] + nums[j]),使用双等号 == 进行比较,并且条件需要用括号包围。

    • return [i, j] 应改为 return {i, j};,返回值应使用花括号并以分号结束。

    • else continue 这一行是多余的,可以删除,因为循环会自动继续。

  2. 效率问题:

    • 你的解决方案使用了两层循环,时间复杂度为 O(n^2),这在数组较大时效率不高。

    • 可以使用哈希表(unordered_map)来优化查找效率,将时间复杂度降低到 O(n)

vector<int>函数返回要有返回值 return {};

相当于是给了一个 vector<>

布尔类型 == 就是在比较 ;= 是在赋值 意义完全不同!!!

最开始犯错在于 不能说 一个没问题就直接认定是素数了

要遍历下来都没问题才能确定是

cpp的平方根表达式学一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值