【发布时间】:2023-03-27 03:39:01
【问题描述】:
例如,我想排序如下:
1 1 1 4 4 4 4 4 3 3 2 2 2
进入:
1 2 3 4 1 2 3 4 1 2 4 4 4
然后打印出来:
8
我的错误代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector <long long unsigned> a,b,c;
long long unsigned n,k,count=0,j=1;
cin>>n;
for(long long unsigned i=0;i<n;i++)
{
cin>>k;
a.push_back(k);
}
for(long long unsigned i=0;i<a.size();i++)
{
b.push_back(a[i]);
if(a[i]==a[i+1])
{
count=count+b.size()-1;
b.clear();
}
if(i==a.size()-1)
count=count+b.size()-1;
}
cout<<count;
return 0;
}
排序是可选的,我主要需要一个好的计数过程。
谢谢。
【问题讨论】:
-
那里有错字吗?你的意思是第二个序列是 1 2 3 1... 吗?因为它是我不知道第一个,第二个和第三个序列/数字之间的关系。
-
你的家庭作业什么时候交?
-
你必须努力解决问题。堆栈溢出不是让别人为你写代码的地方。
-
@InternetAussie 你忘了指出使用裸整数类型(
unsigned long long等)也是不好的做法。uint64_t是更好的选择...(来自#include <cstdint>)