【问题标题】:two sum with two pointer and my output terminal is stuck两个和两个指针,我的输出终端卡住了
【发布时间】:2022-06-17 01:50:01
【问题描述】:

在运行我的代码时一切都很好,直到 while 循环运行 我不知道为什么程序运行卡在那里 我什至用for循环尝试过,但问题仍然存在 我什至参考了一些 youtube 视频来寻求帮助,我的代码仍然和他们一样 它程序卡在while循环中

#include<iostream>
#include <bits/stdc++.h>
#include<vector>
#include<iterator>
using namespace std;

vector<int> twoSum(vector<int> &nums, int target) {

    int siz=nums.size();
    sort(nums.begin(),nums.end());
    vector<int> :: iterator itr;

    for ( itr = nums.begin(); itr < nums.end(); itr++)
    {
        cout<<" "<<*itr;
    }
    cout<<endl;
    int srt=0,ed=siz-1;
    int ind1,ind2;
    
//problem starts here
    while(srt<ed)
    {
        if((nums[srt]+nums[ed])==target)
        {
            ind1=srt;
            ind2=ed;
        }
       
        else  if((nums[srt]+nums[ed])<target)
        {
             
            srt++;
        }
        else 
        {
            
            ed--;
        }
    }
   
        
    cout<<endl<<ind1<<" "<<ind2;
    
    return {ind1,ind2};
}

int main()
{   
    system("cls");
    
    vector<int> vtr={5,2,9,1,6,7,8};
    vector<int> vtr2;

    vector<int> :: iterator itr;

    for ( itr = vtr.begin(); itr < vtr.end(); itr++)
    {
        cout<<" "<<*itr;
    }
    cout<<endl;
    
    vtr=twoSum(vtr,10);

    return 0;
}

【问题讨论】:

  • #include &lt;bits/stdc++.h&gt; 只要您无法解释为什么应该准确使用它,就不允许使用它。这是不可饶恕的罪过之一!

标签: c++ stl c++-standard-library


猜你喜欢
  • 1970-01-01
  • 2019-01-08
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多