1. 题号204. 计数质数
厄拉多塞筛法,创建n大小的数组,1为质数,2非质数,找到一个质数后,把每一个质数的倍数都标记为0,
直接让j=i*i是因为,这个范围内的数都被他之前的质数标记过了
如3直接从9开始遍历,6已经被2标记过了
int countPrimes(int n) {
vector<int> flag(n,1);
int ans=0;
for(int i=2;i<n;i++){
if(flag[i]){
ans++;
if((long long)i*i<n){
for(int j=i*i;j<n;j+=i){
flag[j]=0;
}
}
}
}
return ans;
}
2. 1266. 访问所有点的最小时间
到达下一个点的最小时间,为横竖坐标的最大差
int minTimeToVisitAllPoints(vector<vector<int>>& points) {
int ans = 0;
for(int i=0;i<points.size()-1;i++){
int dx = abs(points[i][0]-points[i+1][0]);
int dy = abs(points[i][1]-points[i+1][1]);
ans+=max(dx,dy);
}
return ans;
}