首页 > 其他分享 >第 326 场周赛

第 326 场周赛

时间:2023-01-01 22:12:08浏览次数:56  
标签:prime 周赛 return int sum Solution 326 ans

1.统计能整除数字的位数

统计能整除数字的位数

Solution

class Solution {
public:
    int countDigits(int num) {
        int ans = 0;
        int n = num;
        while(n){
            int t = n % 10;
            if(num % t == 0){
                ans++;
            }
            n /= 10;
        }
        return ans;
    }
};

2.数组乘积中的不同质因数数目

数组乘积中的不同质因数数目

Solution

class Solution {
public:
    int distinctPrimeFactors(vector<int>& nums) {
        unordered_set<int> ans;
        for(auto x : nums){
            //对每一个元素求其质因数
            int i = 2;
            while(i*i <= x){
                if(x % i == 0){
                    ans.insert(i);
                    x /= i;
                    while(x % i == 0){
                        x /= i;
                    }
                }
                i++;
            }
            if(x > 1){
                ans.insert(x);
            }
        }
        return ans.size();
    }
};

3.将字符串分割成值不超过 K 的子字符串

将字符串分割成值不超过 K 的子字符串

Solution

class Solution {
public:
    int minimumPartition(string s, int k) {
        long long ans = 1, sum = 0;
        for(auto x : s){
            int t = x - '0';
            if(t > k) return -1;
            sum = sum * 10 + t;
            if(sum > k){
                ans++;
                sum = t;
            }
        }
        return ans;
    }
};

4.范围内最接近的两个质数

范围内最接近的两个质数

Solution

用到了素数筛,筛出素数暴力跑就行。

class Solution {
public:
    vector<int> closestPrimes(int left, int right) {
        vector<int> prime;
        vector<int> book(right+5,0);
        book[0] = book[1] = 1;
        //质数筛
        for(int i=2;i<=right;i++) {
            if(!book[i]) {
                prime.push_back(i);
            }
            for(int j=0;j<prime.size() && prime[j]*i <= right;j++) {
                book[prime[j] * i] = 1;
            }
        }
        int nums = INT_MAX;
        int len = prime.size();
        vector<int> ans = {-1,-1};
        for(int i = 0;i < len-1;i++){
            if(prime[i] < left) continue;
            if(nums > prime[i+1] - prime[i]){
                ans = {prime[i], prime[i+1]};
                nums = prime[i+1] - prime[i];
            }
        }
        return ans;
    }
};

标签:prime,周赛,return,int,sum,Solution,326,ans
From: https://www.cnblogs.com/TTS-TTS/p/17019041.html

相关文章

  • AcWing第84场周赛
    本蒟蒻第一次AK周赛第一题、最大数量本题使用桶排序代码#include<bits/stdc++.h>usingnamespacestd;intm[10005];intmain(){intn;cin>>n;f......
  • CCNUACM寒假培训第二周周赛部分题解(ACF)
    A题大意:给出n个数,每次可以选择任意一个数进行加一操作,可执行k次,求最大值可能的最大最小值考虑最大值最大,即所有操作都对初始n个数中的最大值进行,答案即max(a1,.....,an)+......
  • [第326场周赛]分解质因数,埃氏筛,欧拉筛
    leetcode新年福利,本次周赛没有Hard难度的题目,然后我就第一次AK了~总的来说不是很难,涉及到了三个算法,在此记录一下。分解质因数题目链接:​​6279.数组乘积中的不同质因数数......
  • ACWING 第 84 场周赛 ABC
    来水一篇博客:)https://www.acwing.com/activity/content/competition/problem_list/2742/难度偏低(三题都cf800的难度),就不写详解了4788.最大数量#include<bits/stdc++......
  • LeetCode第 94 场双周赛
    1.最多可以摧毁的敌人城堡数目题目最多可以摧毁的敌人城堡数目Solution可以第一重循环找到\(1\),然后从该位置分别向左和向又寻找\(-1\),寻找过程中遇到\(1\)则停止,不......
  • LeetCode周赛325
    到目标字符串的最短距离题目SolutionclassSolution{public:intclosetTarget(vector<string>&words,stringtarget,intstartIndex){intn=wo......
  • 第323场周赛-第三题
    给你一个整数n,表示下标从0开始的内存数组的大小。所有内存单元开始都是空闲的。请你设计一个具备以下功能的内存分配器:分配一块大小为size的连续空闲内存单元并赋......
  • 第323场周赛-第二题
    给你一个整数数组nums。如果nums的子序列满足下述条件,则认为该子序列是一个方波:子序列的长度至少为2,并且将子序列从小到大排序之后,除第一个元素外,每个元素都是......
  • leetcode笔记——323周赛
    2503.矩阵查询可获得的最大分数-力扣(LeetCode)这道题我选用BFS+优先队列来做,(并查集太难了不打算掌握了)。。。优先队列和普通队列的差别就在于:存到队列中的位置与存的......
  • leetcode笔记——325周赛
    2515.到目标字符串的最短距离-力扣(LeetCode)这道题一次遍历就可以做,直接用abs(i-startindex)和n-abs(i-startindex)即可表示距离,但我做的时候绕麻烦了......