как распечатать в терминале c ++ и linux - PullRequest
0 голосов
/ 16 марта 2020
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
class twoSumClass{
    public:
        vector<int> twoSum(vector<int>& nums, int target){
           vector<int> result;
           unordered_map<int,int> hm;
           for(int index = 0; index < nums.size(); index++){
            int findVal = target - nums[index];
            if(hm.count(findVal) > 0 && hm[findVal] != index){
                result.push_back(index);
                result.push_back(hm[findVal]);
                return result;
            }
            else{
                hm.insert(make_pair(nums[index], index));
            }
           }
           return result;
        }
};
void Print(vector<int>& v){
    for (int i = 0; i < v.size(); i++){
        cout << v[i] <<endl;
    }
};
int main(){
    vector<int> items = {1,2,3,4,5,6,7};
    int trgt = 2;
    twoSumClass myTest;
    std::vector<int> res = myTest.twoSum(items, trgt);
    Print(res);
    return 0;
}

это мой простой код, я пытаюсь запустить этот код в linux терминале как: g ++ test1. cpp -o test1, а затем запустить: ./test1, однако терминал ничего не печатает. как я могу изменить код? Кстати, назначение кода схоже с leetcode вопрос № 1 добавить две суммы.

1 Ответ

1 голос
/ 16 марта 2020
int main() {
    vector<int> items = {1,2,3,4,5,6,7};
    int trgt = 2;
    ...
}

Вы хотите найти 2 целых числа в векторных элементах , а их сумма равна trgt .
Нет ответа в {1,2,3,4 , 5,6,7}.
Таким образом, ни один отпечаток не является правильным ответом.

Советую прочитать это руководство .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...