美文网首页
[LeetCode]Two Sum

[LeetCode]Two Sum

作者: 肖浩呗 | 来源:发表于2016-10-31 13:34 被阅读40次

    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.

    Example:

    Given nums = [2, 7, 11, 15], target = 9
    

    Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].


    Answer:

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) {
            vector<int> result;
            int m_count = nums.size();
            int m_target = target;
            
            if (m_count < 2){
                return result;
            }
            
            if (m_count == 2){
                if((nums[0] + nums[1]) == target)
                {
                    result.push_back(0);
                    result.push_back(1);
                    return result;
                }
                else{
                    return result;
                }
            }
            
            int m_min = nums.at(0);
            int m_max = nums.at(0);
            
            for (int index = 1;index < m_count;index++){
                if(nums[index] > m_max){
                    m_max = nums[index];
                    continue;
                }
                if(nums[index] < m_min){
                    m_min = nums[index];
                }
            }
            
            map<int,map<string,int>> m_flagMap;
            
            for (int index = 0;index < m_count;index++){
                m_flagMap[nums[index]]["bool"] = 1;
                m_flagMap[nums[index]]["count"] ++;
                m_flagMap[nums[index]]["index"] = index;
            }
            
            for (int index = 0;index < m_count;index++){
                int m_sub = m_target - nums[index];
                map<string,int> indexMap = m_flagMap[m_sub];
                if(indexMap["bool"] == 1 && indexMap["index"] != index){
                    result.push_back(index);
                    result.push_back(indexMap["index"]);
                    break;
                }
            }
            
            return result;
        }
    };
    

    相关文章

      网友评论

          本文标题:[LeetCode]Two Sum

          本文链接:https://www.haomeiwen.com/subject/onhputtx.html