250:简单题
class RunningAroundPark {
public:
int numberOfLap(int N, vector <int> d)
{
int n=d.size();
int ans=1,last=-1;
for(int i=0;i<n;i++)
{
if(d[i]<=last)
{
ans++;
last=d[i];
}
else last=d[i];
}
return ans;
}
};
500:找规律,简单题
class PotentialGeometricSequence {
public:
int numberOfSubsequences(vector <int> d)
{
int n=d.size();
if(n==1) return 1;
int ans=0,last=1,slope=d[1]-d[0];
for(int i=2;i<n;i++)
{
int newslope=d[i]-d[i-1];
if(newslope==slope)
{
last++;
}
else
{
last++;
int jia=(last+1)*last/2;
if(ans) jia--;
ans+=jia;
last=1;
slope=newslope;
}
}
last++;
int jia=(last+1)*last/2;
if(ans) jia--;
ans+=jia;
return ans;
}
};
1000: 背包
typedef long long int LL;
const LL mod=1000000007LL;
class GoodSubset {
public:
int numberOfSubsets(int goodValue, vector <int> d)
{
int n=d.size();
map<LL,LL> mp;
map<LL,LL>::reverse_iterator it;
mp[1]=1;
for(int i=0;i<n;i++)
{
for(it=mp.rbegin();it!=mp.rend();it++)
{
LL t=it->first*d[i];
if(goodValue%t==0)
{
mp[t]=(mp[t]+it->second)%mod;
}
}
}
mp[1]--;
return mp[goodValue];
}
};