acwing.h(欢迎大家完善)
作者:
sy2020lyk
,
2021-10-30 20:18:07
,
所有人可见
,
阅读 370
头文件acwing.h正式完成
收藏了acwing中本人做过的函数题
c++代码
#include<bits/stdc++.h>
using namespace std;
class ac {
public:
int getNumbercnt(vector<int>& nums , int k) {// 数字在排序数组中出现的次数
int s=0;
bool b=0;
for(int i=0;i<nums.size();i++){
if(nums[i]==k){
s++;
b=1;
}
else if(b==1)break;
}
return s;
}
long long getSum(int n) {//1+2+3+……n
long long k;
if((1+n)%2==0)k=(1+n)/2*n;
else k=n/2*(1+n);
return k;
}
char firstNotRepeatingChar(string s) {//字符串第一个不重复的字符
bool b[126];
int k[126];
for(int i=0;i<126;i++){
k[i]=0;
}
for(int i=0;i<s.size();i++){
k[int(s[i])]+=1;
}
for(int i=0;i<s.size();i++){
if(k[int(s[i])]==1){
return s[i];
}
}
return '#';
}
int duplicateInArray(vector<int>& nums) {//找出数组中重复的数字
int n=nums.size(),k;
bool b[n],p;
for(int i=0;i<n;i++){
b[i]=0;
}
for(int i=0;i<n;i++){
if(nums[i]<0||nums[i]>=n)return -1;
if(b[nums[i]]){
k=nums[i];
p=true;
}
b[nums[i]]=1;
}
if(p)return k;
else return -1;
}
vector<int> getminNumbers_Solution(vector<int> input, int k) {//最小的k个数
sort(input.begin(),input.end());
vector <int>ans;
for(int i=0;i<k;i++){
ans.push_back(input[i]);
}
return ans;
}
};
class MinStack {
public:
/** initialize your data structure here. */
stack<int> stackValue;
stack<int> stackMin;
void push(int x) {
stackValue.push(x);
if (stackMin.empty() || stackMin.top() >= x)
stackMin.push(x);
}
void pop() {
if (stackMin.top() == stackValue.top()) stackMin.pop();
stackValue.pop();
}
int top() {
return stackValue.top();
}
int getMin() {
return stackMin.top();
}
};
使用方法
#include"acwing.h"
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
cin>>n;
int k=ac().getSum(n);
vector<int>p;
p.push_back(1);
p.push_back(k);
cout<<ac().getNumbercnt(p,k);
MinStack a;
a.push(1);
cout<<k;
}