剑指 Offer 03. 数组中重复的数字
力扣链接:剑指 Offer 03. 数组中重复的数字
acwing链接
最初的思路是,将所有数据放入桶中,数据存在,数据桶值就++,有数据重复就retrun nums[i],无数据重复就return -1,且需要考虑优先输出-1,其次才是重复值nums[i],因此我最初在acwing上的代码为:
class Solution {
public:
int duplicateInArray(vector<int>& nums) {
int a[1005]={0};
for(int i=0;i<nums.size();i++)
{
a[nums[i]]++;
if(nums[i] > nums.size() || nums[i] < 0 )return -1;
}
for(int i=0;i<nums.size();i++)
{
if(a[ nums[i] ] >= 2)return nums[i];
}
return -1;
}
};
这样写思路确实正确,并且考虑了优先让a[nums[i]]自增完,再去判断是否有重
而leetcode的数据就有点水了,不需要考虑优先级,同时进行都能过,太离谱了
class Solution {
public:
int findRepeatNumber(vector<int>& nums) {
int a[100005]={0};
for(int i=0;i<nums.size();i++)
{
a[nums[i]]++;
if(a[ nums[i] ] >= 2)return nums[i];
}
return -1;
}
};
这里不得不说一下y总的做法,确实巧妙
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具