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

算法集训传送门》

  引言

在这里插入图片描述

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

❄️我们的算法之路❄️

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

【算法集训 | 暑期刷题营】终章_第1张图片


今日主题:终章


 ⭐️第一题

   ✨题目

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

【算法集训 | 暑期刷题营】终章_第2张图片

   ✨思路

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

   ✨代码

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)
【算法集训 | 暑期刷题营】终章_第3张图片

   ✨代码

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;

    }
}


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

你可能感兴趣的:(算法集训,算法,深度优先,leetcode)