使用哈希表解决这个问题的问题
Problem in using hash tables as the solution to this problem
Andryusha 是一个有条不紊的男孩,喜欢把东西放在自己的地方。
今天他遇到了一个问题,要把袜子放在衣柜里。他有 n 只不同的袜子,最初放在一个袋子里。这些对从 1 到 n 编号。 Andryusha 想把成对的袜子放在一起放在衣柜里。他从袋子里一只一只地取出袜子,每只袜子他都看看这双袜子是否已经从袋子里拿出来了。如果没有(这意味着这双袜子还在袋子里),他将当前的袜子放在他面前的 table 上。否则,他会把那双袜子都放进衣柜。
Andryusha 记得他从包里取出袜子的顺序。你能告诉他 table 上同时出现的最大袜子数量是多少吗?就是这个问题。
https://codeforces.com/contest/782/problem/A这是问题陈述。
int main()
{
init_code();
int n ;
cin >> n ;
unordered_map <int ,int> hash;
int count = 0 ;
int max = count ;
int s;
while(n--)
{ cin >> s;
hash[s]++;
if(hash[s] == 1)
count++;
if(hash[s] == 2)
count--;
if(max <= count)
max = count;
}
cout << max ;
return 0;
}
https://codeforces.com/contest/782/submission/119472076
这是我对使用散列 tables 的问题的回答,即在 C++ STL 中使用 unordered_map。
首选方法是使用数组。
谁能帮帮我,我觉得我的逻辑是正确的,我无法得到测试用例4的正确答案,这个数字非常大。我正在使用哈希 tables.
问题是找出同时在 table 上的袜子的最大数量。哪里可以一次拿走一只袜子。
有人能告诉我为什么散列 tables 是解决这个问题的糟糕方法或者没有给我正确的答案。
有 2*n
个数字需要读取和处理,但您只处理了 n
个数字。处理 2*n
个数字以修复。
Andryusha 是一个有条不紊的男孩,喜欢把东西放在自己的地方。
今天他遇到了一个问题,要把袜子放在衣柜里。他有 n 只不同的袜子,最初放在一个袋子里。这些对从 1 到 n 编号。 Andryusha 想把成对的袜子放在一起放在衣柜里。他从袋子里一只一只地取出袜子,每只袜子他都看看这双袜子是否已经从袋子里拿出来了。如果没有(这意味着这双袜子还在袋子里),他将当前的袜子放在他面前的 table 上。否则,他会把那双袜子都放进衣柜。
Andryusha 记得他从包里取出袜子的顺序。你能告诉他 table 上同时出现的最大袜子数量是多少吗?就是这个问题。
https://codeforces.com/contest/782/problem/A这是问题陈述。
int main()
{
init_code();
int n ;
cin >> n ;
unordered_map <int ,int> hash;
int count = 0 ;
int max = count ;
int s;
while(n--)
{ cin >> s;
hash[s]++;
if(hash[s] == 1)
count++;
if(hash[s] == 2)
count--;
if(max <= count)
max = count;
}
cout << max ;
return 0;
}
https://codeforces.com/contest/782/submission/119472076
这是我对使用散列 tables 的问题的回答,即在 C++ STL 中使用 unordered_map。
首选方法是使用数组。
谁能帮帮我,我觉得我的逻辑是正确的,我无法得到测试用例4的正确答案,这个数字非常大。我正在使用哈希 tables.
问题是找出同时在 table 上的袜子的最大数量。哪里可以一次拿走一只袜子。
有人能告诉我为什么散列 tables 是解决这个问题的糟糕方法或者没有给我正确的答案。
有 2*n
个数字需要读取和处理,但您只处理了 n
个数字。处理 2*n
个数字以修复。