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;
        }
    };
    

      

     

     
     
    推荐
     
     
     
     
     
     
  • 相关阅读:
    python模块
    python函数进阶
    python函数
    六.python的深浅拷贝
    五.集合及其推导式
    IOS微信显示NAN,中国标准时间日期转换
    Caused by: org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found. Available parameters are [beginTime, endTime, param3, param1, vesselName, param2] 找不到参数的解决方式
    java的nullpointerexception空指针异常,关于使用了timer定时导致service调用问题
    java设置开始时间,定时执行任务
    java多层嵌套集合的json,如何获取多层集合中所需要的value
  • 原文地址:https://www.cnblogs.com/baochuan/p/9019465.html
Copyright © 2011-2022 走看看