zoukankan      html  css  js  c++  java
  • 167. Two Sum II

    原文题目:

    167. Two Sum II - Input array is sorted

    读题:

    给定一个升序序列,找到两个数加起来等于目标值,并输出索引,注意这里的索引是从1开始的

    解题思路:

    由于是升序,因此,可以用p指向第一个元素,用q指向最后一个元素,然后判断p和q所指的数加起来是否为目标值,找到则返回,若小于目标值,则p++,若大于目标值,则q++

    class Solution 
    {
    public:
    	vector<int> twoSum(vector<int>& numbers, int target) 
    	{
    		vector <int> result;
    		int i = 0;
    		//输入保证一定有解,因此不需要考虑numbers的长度小于2的情况,否则这里j就成负数了
    		int j = numbers.size() - 1;
    		while(i!=j)
    		{
    			if(numbers[i] + numbers[j] == target)
    			{
    				result.push_back(i+1);
    				result.push_back(j+1);
    				break;
    			}
    			else if (numbers[i] + numbers[j] > target)
    			{
    				j--;
    			}
    			else
    			{
    				i++;
    			}
    		}
    		return result;
    		
    	}
    };
    
    int main()
    {
    	vector <int> result;
    	vector <int> numbers;
    	Solution s;
    	numbers.push_back(2);
    	numbers.push_back(7);
    	numbers.push_back(11);
    	numbers.push_back(15);
    	
    	int target = 9;
    	int i = 0;
    	result = s.twoSum(numbers,target);
    	for(i = 0; i < result.size();i++)
    	{
    		cout << result[i]<<endl;
    	}
    }
    

      

  • 相关阅读:
    array常用方法总结
    .babelrc参数小解
    async/await方法解析
    html5-entities.js消失问题
    h => h(App)解析
    package.json字段简要解析
    body-parser小解
    mongodb中的__v字段
    module.exports与exports
    freemarker判断对象是否为空
  • 原文地址:https://www.cnblogs.com/xqn2017/p/8006817.html
Copyright © 2011-2022 走看看