牛客刷题系列

@[toc]

> 很多小伙伴为了刷题发愁
> 今天为大家推荐一款刷题神奇哦:[刷题面试神器牛客](https://www.nowcoder.com/link/pc_csdncpt_xfh_sf)
> 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官



# 一:自守数
* 题目:([题目链接](https://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e?tpId=37&&tqId=21322&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking))

![在这里插入图片描述](https://img-blog.csdnimg.cn/92d2cf68ad264f909110b4d527b50f01.png)


* 代码:

```cpp
#include <iostream>
#include <string>
using namespace std;
bool isnot(int i)
{
    if(i==0)
        return true;
    int a = i*i;
    int sum= 0;
    int j=1;
    while(a!=0)
    {
       if(sum == i)
           return true;
       else
      {
         int tem =a%10;
          for(int k=1;k<j;k++)
              tem*=10;
           
           j++;
           
           sum+=tem;
           a=a/10;
      }
    }
    if(sum== i)
        return true;
    else
        return false;
}
int main(){
    int n;
    cin>> n;
    int count=0;
    for(int i=0;i<=n;i++)
    {
       if(isnot(i))
           count++;
    }
    cout<<count;
}
```


* 思路:
1. 首先要明白自守数的定义:自守数是指一个数的平方的尾数等于该数自身的自然数。
2. 计算:通过暴力枚举法依次计算

# 二:返回小于 N 的质数个数
## 1.题目
[题目链接](https://www.nowcoder.com/practice/9e7a88d6a00e404c8418602515a5046c?tpId=182&&tqId=34812&rp=1&ru=/ta/exam-all&qru=/ta/exam-all/question-ranking)
![在这里插入图片描述](https://img-blog.csdnimg.cn/8aaa4336b92d458cba7db7396336e8c1.png)


## 2.代码实现

```cpp
#include <iostream>
#include <string>
#include<math.h>
using namespace std;
bool isnot(int a)
{
   for(int i=2;i<=sqrt(a);i++)
   {
       if(a%i==0)
           return false;
   }
    return true;
}
int main(){
    int n;
    cin>> n;
    int count=0;
    for(int i=2;i<=n;i++)
    {
       if(isnot(i))
           count++;
    }
    cout<<count;
}
```


## 3.思路和要注意的细节
![在这里插入图片描述](https://img-blog.csdnimg.cn/6bfeaee060a24d3080efb00732e8fc9e.png)
> 注意题目要求,所以我用的是  for(int i=2;i<=sqrt(a);i++) 这个循环来判断

# 三:第一个只出现一次的字符
## 1.题目
[题目链接](https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=188&&tqId=38575&rp=1&ru=/activity/oj&qru=/ta/job-code-high-week/question-ranking)
![在这里插入图片描述](https://img-blog.csdnimg.cn/638e50c47da84f50ab51a5691f24f0f3.png)

## 2.代码实现

```cpp
class Solution {
public:
    int FirstNotRepeatingChar(string str) {
        map<char,int> m;
        for(int i=0;i<str.size();i++)
        {
              m[str[i]]++;
        }
        for(int i=0;i<str.size();i++)
        {
              if(m[str[i]]==1)
              {
                return i;
              }
        }
        return -1;
    }
};
```
## 思路和注意的点

> 这个题,主要就是用了map的特性,关于map的特性,可以看下我另外一篇文章[C++精通之路:map和set](https://blog.csdn.net/yin_***/article/details/124713333)



# ps

> 想和博主一样刷优质面试和算法题嘛,快来[刷题面试神器牛客](https://www.nowcoder.com/link/pc_csdncpt_xfh_sf)吧,期待与你在牛客相见

全部评论
我上次笔试的时候就遇到了写质数
点赞 回复 分享
发布于 2022-08-27 17:34 陕西

相关推荐

野猪不是猪🐗:把你的学校加黑,加粗,斜体,下划线,描边,内阴影,内发光,投影,外发光,再上渐变色,居中,放大到最大字号,再把简历里其它内容删了,就行了
点赞 评论 收藏
分享
什么时候才能有offer啊_:十年前我还在刺激战场研究跳伞的底层原理呢
投递牛客等公司
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务