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

LeetCode:2. 两数之和

这个解题思路来自代码随想录:代码随想录 (programmercarl.com)

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {std::unordered_map <int,int> map;for(int i = 0; i < nums.size(); i++) {// 遍历当前元素,并在map中寻找是否有匹配的keyauto iter = map.find(target - nums[i]); if(iter != map.end()) {return {iter->second, i};}// 如果没找到匹配对,就把访问过的元素和下标加入到map中map.insert(pair<int, int>(nums[i], i)); }return {};}
};

 小编自己写的方法实测不佳,但可作为一个解题思路

// 方法一:效果差
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> v;int count = 0;unordered_map<int,pair<int,int>> mp;int tmp;for(int i=0;i<nums.size();i++) {count = 0;if(mp.count(target-nums[i])!=0) {count++;mp[target-nums[i]].second = count; }tmp = target-nums[i];mp.insert({nums[i],{tmp,count}});v.push_back(i);}for(int i=0;i<v.size();i++) {// cout<<"v[i]"<<v[i]<<endl;// cout<<"mp[nums[v[i]]].second"<<mp[nums[v[i]]].second<<endl;if(mp[nums[v[i]]].second==0) {v.erase(v.begin() + i);i--;}}return v;}
};// 方法二:效果不佳
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> v;int count = 0;unordered_map<int,pair<int,int>> mp;int tmp;int k=0;int tmp_index;for(int i=0;i<nums.size();i++) {tmp = target-nums[i];if(tmp==nums[i]) {k++;if(k==1) tmp_index = i;else if(k==2) {// mp.insert({nums[i],{tmp_index,i}});// k=0;return {tmp_index,i};}}else {if(mp.count(tmp)!=0) {mp.insert({nums[i],{-1,i}});}else{mp.insert({nums[i],{i,-1}});}}}for(auto it:mp) {if(it.second.second !=-1) {tmp = target-it.first;// cout<<it.first<<":"<<it.second.first<<","<<it.second.second<<endl;// cout<<mp.find(tmp)->first<<":"<<mp.find(tmp)->second.first<<","<<mp.find(tmp)->second.second<<endl;v.push_back(it.second.second);v.push_back(mp.find(tmp)->second.first);}}return v;}
};

 

http://www.lryc.cn/news/163314.html

相关文章:

  • OpenCV(二十四):可分离滤波
  • 【JS进阶】防抖与节流
  • 【css】linear-gradient()的用法
  • java: 读取snakeyaml-1.26.jar各种jar包时出错; error in opening zip file
  • 医疗知识图谱 neo4j
  • 【LeetCode-简单题】367. 有效的完全平方数
  • vben-admin中渲染table表格时怎么处理不同的数据结构
  • 从零开始在树莓派上搭建WordPress博客网站并实现公网访问
  • Go基础18-理解方法的本质以选择正确的receiver类型
  • Go基础12-理解Go语言表达式的求值顺序
  • OJ练习第165题——修车的最少时间
  • 纯前端实现 导入 与 导出 Excel
  • 关于一次两段式提交和数据库恢复数据我的一些想法
  • 阿里巴巴springcloud的gateway网关如何用继承接口WebExceptionHandler定义一个json格式的404错误页面实例
  • 『力扣每日一题07』字符串最后一个单词的长度
  • 成都睿趣科技:抖音开店初期要注意什么
  • QT 5.13保姆级安装教程
  • js 创建DOM,并添加父DOM上,移除某个DOM的所有子节点
  • element el-input 二次封装
  • [源码系列:手写spring] IOC第十三节:Bean作用域,增加prototype的支持
  • 【性能优化】事件委托
  • C 风格文件输入/输出---无格式输入/输出---(std::fputc,std::putc,std::fputs)
  • 建议收藏!Harmony应用配置文件概述(Stage模型)
  • 金蝶云星空和四化智造MES(WEB)单据接口对接
  • Shell命令切换root用户、管理配置文件、检查硬件
  • DataX(MySQL同步数据到Doris)
  • sql server服务无法启动怎么办?如何正常启动?
  • SpringMVC实现文件上传和下载
  • Your build is currently configured to use Java 20.0.2 and Gradle 8.0
  • 栈 之 如何实现一个栈