zoukankan      html  css  js  c++  java
  • 【leetcode】 算法题1 两数之和

     
    问题
      
      
     给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

    你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]
     
    代码实现
      
    #include <vector>
    #include <map>
    /**
    *
    *给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
    *你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
    *case:
    *给定 nums = [2, 7, 11, 15], target = 9
    *因为 nums[0] + nums[1] = 2 + 7 = 9
    *所以返回 [0, 1]
    */
    using namespace std;
    class Solution {
    public:
        // 两两对比的方式,时间复杂度为O(n2)
        vector<int> twoSum(vector<int>& nums, int target) {
            vector<int> ret;
    
            // 第一种
            /*for (int i = 0; i < nums.size(); i++) {
                for (int j = i + 1; j < nums.size(); j++) {
                    if (nums[i] + nums[j] == target) {
                        ret.push_back(i);
                        ret.push_back(j);
                        return ret;
                    }
                }
            }*/
    
            // 第二种:数据插入到hashmap里,然后通过target - nums[i]来确定,时间复杂度为O(2n)
            map<int, int> m;
            for (int i = 0; i < nums.size(); i++) {
                m[nums[i]]  = i;
            }
            for (int i = 0; i < nums.size(); i++) {
                if (m.count(target - nums[i]) > 0 && i != m[target - nums[i]]) {
                    ret.push_back(i);
                    ret.push_back(m[target - nums[i]]);
                    return ret;
                }
            }
            return ret;
        }
    };
    

      

     

     
     
    推荐
     
     
     
     
     
     
  • 相关阅读:
    《代码整洁之道》阅读笔记(三)
    pyqt5知识
    软件开发的生命周期
    软件过程与管理CMMI
    pyQt5练习(三)
    pyQt5练习(二)
    《代码整洁之道》阅读笔记(二)
    pyQt5练习(一)
    Android Studio错误:Connect to 127.0.0.1:1080 [/127.0.0.1] failed: Connection refused: connect
    AndroidStudio:Minimum supported Gradle version is XXX Current version is XXX
  • 原文地址:https://www.cnblogs.com/baochuan/p/9019465.html
Copyright © 2011-2022 走看看