【c++】leetcode twosum 两数之和

本文主要介绍了如何使用C++解答LeetCode的两数之和问题,包括暴力求解和哈希表优化的解决方案。哈希表求解法通过一次遍历构建哈希表,再进行查找,实现O(n)的时间复杂度。文中还提到可以进一步优化,避免二次遍历。
摘要由CSDN通过智能技术生成

题目

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

分析

这道题乍一看,一点也不难,不就是遍历两遍就好了,但是坑有两个:

  1. 不能重复利用数组中同样的元素
    刚开始写你可能不会注意,遍历起来i=0, j=0就会踩到这样的坑,j = i 也会!
  2. 每种输入只对应一个答案
    你也不能 j = i ,这样你就重复的用了两遍了元素,j = i+1就错开了

暴力求解

class Solution {
   
public:
    vector<int> result={
   };
    vector<int> twoSum(vector<int>& nums, int target) {
   
        for (int i=0;i< nums.size();i++)
            for (int j = i+1; j < nums.size(); j++)
            {
   
                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值