【算法集训 | 暑期刷题营】终章

本文围绕算法学习展开,分享了关于回文素数和计数质数的解题思路及代码实现。通过暴力解法解决866题回文素数问题,同时探讨204题计数质数的解决方案,涉及二分、贪心、动态规划等算法知识。希望通过集训,与读者一同提升算法能力,感受编程的魅力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法集训传送门

  👉引言

在这里插入图片描述

铭记于心
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉

💖 ❄️我们的算法之路❄️💖

   众所周知,作为一名合格的程序员,算法 能力 是不可获缺的,并且在算法学习的过程中我们总是能感受到算法的✨魅力✨。
              ☀️🌟短短几行代码,凝聚无数前人智慧;一个普通循环,即是解题之眼🌟☀️
   💝二分,💝贪心,💝并查集,💝二叉树,💝图论,💝深度优先搜索(dfs),💝宽度优先搜索(bfs),💝数论,💝动态规划等等, 路漫漫其修远兮,吾将上下而求索! 希望在此集训中与大家共同进步,有所收获!!!🎉🎉🎉

在这里插入图片描述


今日主题:终章


 👉⭐️第一题💎

   ✨题目

      866. 回文素数 - 力扣(LeetCode)

在这里插入图片描述

   ✨思路

暴力解法,声明两个函数,分成两步走暴力解题

   ✨代码
var isPalindrome = function(n) {
  let str = n.toString().split("").reverse().join("")
  return str === n
}
var isPrime = function(n) {
  for(let i = 0 ;i < n; i++){
      if(n % i == 0){
          return false
      }
  }
  return true
}

 👉⭐️第二题💎

   ✨题目

      204. 计数质数 - 力扣(LeetCode)
在这里插入图片描述

   ✨代码
public class Solution {
    public bool isPrime(int x)
    {
        if(x<2)return false;
        for(int i=2;i*i<=x;i++)
        {
            if(x%i==0)return false;
        }
        return true;
    }
    public int CountPrimes(int n) 
    {
        int res=0;
        bool[] vis=new bool[n+1];
        for(int i=2;i<n;i++)
        {
            if(vis[i])continue;//下文的vis[j*i]已经对其进行了预判,它不是质数直接跳过
            if(isPrime(i))//判断是否为质数,是的话,它的倍数就不是了
            for(int j=2;j<n;j++)
            {
                if(j*i<n)vis[j*i]=true;
                else break;
            }
            else vis[i]=true;//不是的话记录在案

        }
        for(int i=2;i<n;i++)if(!vis[i])res++;//因为非质数记录的是true,所以统计false的个数
        return res;

    }
}


🌹写在最后💖
相信大家对今天的集训内容的理解与以往已经有很大不同了吧,或许也感受到了算法的魅力,当然这是一定的,路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想new的出来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值