斐波那契数列、跳台阶、矩形覆盖、而进制中1的个数、判断是否是素数

news2024/12/24 18:01:08

文章目录

  • 1、斐波那契数列
  • 2、跳台阶
  • 3、矩形覆盖
  • 4、二进制中1的个数
  • 5、判断是否是素数

1、斐波那契数列

本题考点: 间复杂度,fib理解,剪枝重复计算 牛客链接

题目描述:
在这里插入图片描述
解题思路:
在这里插入图片描述
代码:

class Solution {
public:

    //迭代
    // int Fibonacci(int n) {
    //     int ret = 0;
    //     int a = 1, b = 1;
    //     if(n <= 2)
    //         return 1;
    //     for(int i = 3; i <= n; i++)
    //     {
    //         ret =a + b;
    //         a = b;
    //         b = ret;
    //     }
    //     return ret;
    // }

    //递归,剪枝
    int Fibonacci(int n) {
        if(n == 0)
            return 0;
        if(n <= 2)
            return 1;
        
        int pre = 0, ppre = 0;
        if(mp.find(n - 2) == mp.end())
        {
            //没找到,递归求解
            ppre = Fibonacci(n - 2);
            mp.insert({n - 2, ppre});
        }
        else
        {
            //找到了
            ppre = mp[n - 2];
        }

        if(mp.find(n - 1) == mp.end())
        {
            //没找到
            pre = Fibonacci(n - 1);
            mp.insert({n - 1, pre});
        }
        else
        {
            //找到了,递归求解
            pre = mp[n - 1];
        }
        
        return pre + ppre;
    }

private:
    map<int, int> mp;
};

2、跳台阶

本题考点: 场景转化模型,模型提取解法,简单dp 牛客链接

题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
数据范围:1≤n≤40
要求:时间复杂度:O(n) ,空间复杂度: O(1)

解题思路:

在这里插入图片描述
代码:
本题代码和上一题一样,参照上一题代码即可。

3、矩形覆盖

本题考点: 和上题相同 牛客链接

题目描述:
我们可以用 2 * 1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2 * 1 的小矩形无重叠地覆盖一个 2 * n 的大矩形,从同一个方向看总共有多少种不同的方法?

数据范围:0≤n≤38
进阶:空间复杂度O(1) ,时间复杂度 O(n)
注意:约定 n == 0 时,输出 0
比如n=3时,2*3的矩形块有3种不同的覆盖方法(从同一个方向看):
在这里插入图片描述
解题思路:

在这里插入图片描述
代码:

class Solution {
public:
    int rectCover(int number) {
        if(number < 2)
            return number;
        int* dp = new int[number + 1];
        dp[0] = 0;
        dp[1] = 1;
        dp[2] = 2;
        for(int i = 3; i<= number; i++)
        {
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        return dp[number];
    }
};

4、二进制中1的个数

本题考点: 二进制计算 牛客链接

题目描述:
输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。
数据范围:-2^31 <= n <= 2 ^31 - 1
即范围为:−2147483648<=n<=2147483647

解题思路:
在这里插入图片描述
代码:

class Solution {
public:
    int  NumberOf1(int n) {

        //方法一:
   
        // int count = 0;
        // for(int i = 0; i < 32; i++)
        // {
        //     if(((n >> i) & 1 ) == 1)
        //         count++;
        // }
        // return count;
        
        //方法二:
        int count = 0;
        while(n)
        {
            n &= (n - 1);
            count ++;
        }
        return count;
    }
};

5、判断是否是素数

题目描述: 牛客链接
质数(又称素数),是指在大于1的自然数中,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数)。请写个程序判断输入的数字是否是质数,如果是素数请输出:true,不是请输出false
请注意算法效率,该题目有时间限制 , 输入的数字小于2^64 次幂

解题思路:
在这里插入图片描述

代码:

#include<iostream>
#include<cmath>
using namespace std;
/*
//这种方法在此题中不行,效率达不到
bool isPrime(long long n ) 
{
    for(long int i = 2; i <= sqrt(n);i++)
    {
        if(n % i == 0)
        {    
            return false;
        }
    }
    return true;
}*/

bool isPrime(long long& n) {
    return (n == 2 || n == 3) || (n % 6 == 1) || (n % 6 == 5) ? true : false;
}
int main()
{
    long long n = 0;
    while(cin >> n)
    {
        if(isPrime(n))
            cout << "true" << endl;
        else
            cout << "false" << endl;
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ozon、Joom等俄罗斯跨境电商卖家想要爆单需要具备哪些条件—自养号测评

Ozon成立于1998年&#xff0c;目前不仅是俄罗斯多品类电子商务平台领导者、俄罗斯最知名的电子商务品牌&#xff0c;是俄罗斯最早的电子商务公司之一 Joom平台是俄罗斯知名的电商平台&#xff0c;Joom平台成立于2016年6月份&#xff0c;joom平台在16年11月份就对中国地区卖家进…

项目上线整体流程

文章目录一、上线前准备二、阿里云机器购买三、上线架构图四、安装Git五、云服务器安装MySQL六、云服务器安装Redis七、云服务器安装源码安装Python八、云服务器安装Uwsgi九、安装虚拟环境十、安装nginx十一、前端项目部署十二、后端项目部署1&#xff09;Git拉取最新代码安装依…

Docker——容器命令介绍、创建Nginx容器与Redis容器

目录 一、容器命令 二、创建并运行Nginx容器 1.1 去dockerhub查看Nginx容器运行命令 1.2 怎么访问Nginx&#xff1f; 1.3 查看容器日志 1.4总结 三、进入Nginx容器并修改HTML内容 3.1 进入容器 3.2 进入Nginx的HTML所在目录 3.3 修改index.html文件&#xff08;容器内修…

零基础上手unity VR开发【将项目安装到Oculus头套中】

&#x1f4cc;个人主页&#xff1a;个人主页 ​&#x1f9c0; 推荐专栏&#xff1a;Unity VR 开发成神之路 --【着重解决VR项目开发难&#xff0c;国内资料匮乏的问题。从零入门&#xff0c;一步一个脚印&#xff0c;带你搞定VR开发! &#x1f63b;&#x1f63b;】 &#x1f4d…

leetcode39. 组合总和

文章目录题目思考代码和注释总结题目 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同…

【全志T113-S3_100ask】15-1 内核5.4驱动spi屏幕——ILI9341

【全志T113-S3_100ask】15-1 内核5.4驱动spi屏幕——ILI9341背景&#xff08;一&#xff09;spi设备树1、修改设备树2、完善设备树&#xff08;二&#xff09;使能内核&#xff08;三&#xff09;兼容性修改&#xff08;四&#xff09;测试背景 本来想直接驱动mipi屏幕的&…

香蕉派BPI-M6 采用深蕾半导体Vs680芯片设计,板载4G LPDDR4和16G eMMC存储

Banana PI BPI-M6 香蕉派BPI-M6是香蕉派社区在2022年推出的新一代单板计算机&#xff0c;它采用深蕾半导体(Synaptics) VS680四核Cortex-A73 (2.1GHz)和一个Cortex-M3处理器&#xff0c;Imagination GE9920 GPU。 NPU高达6 .75 tops算力。 板载4GB LPDDR4内存和16GB EMMC存储&a…

React 编写网页聊天界面(仿钉钉)

效果图 文件结构 对话框 一、 难点 对话框的难点主要在样式上 双方对话分布在左右长对话的长度不能超过整个对话框宽度的一半图片的大小最大不能超过整个对话框宽度的一半&#xff0c;并且需要按比例进行收缩 二、与要引入的插件 1、 阿里巴巴的iconfont 可以去这篇博客里面…

Qt QTreeWidget树形控件用法详解

文章目录QTreeWidget控件的创建QTreeWidget\QTreeView的关系和区别QTreeWidgetItem类QTreeWidget的实际应用1) 添加结点2) 给结点添加图标3) 给结点添加复选框4) 多列树形控件5) QTreeWidget中添加其它控件QTreeWidget信号和槽已剪辑自: http://c.biancheng.net/view/vip_9659.…

PS-HDR图像编辑与应用

每天一个PS/PR小技巧&#xff08;原理实践&#xff09;https://blog.csdn.net/tiao_god/article/details/124186746用PS打开一张HDR图像。 一般打开的图像会很黑&#xff0c;只有少部分光源处比较亮&#xff0c;这是因为默认显示时高动态范围的值都除以了一个统一的值来归一化…

TypeError: ‘module‘ object is not callable 报错解决

pycharm 控制台报错内容如下&#xff1a; pgsqlSearch.py 连接pgsql代码如下&#xff1a; import psycopg2 import ReportModelif __name__ __main__:# 创建连接对象conn psycopg2.connect(database"checkdb", user"postgres", password"postgres…

Flutter高仿微信-第21篇-支付-向商家付款(二维码)

Flutter高仿微信系列共59篇&#xff0c;从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图&#xff1a; 实现代码&#xff1a; /*** Author : wangning* Email : maoning20080809163.…

IntelliJ IDEA-Debug断点调试 看这篇文章就够了

详解IntelliJ IDEA-Debug断点调试 如今&#xff0c;IntelliJ IDEA 目前深受广大开发者喜爱&#xff0c;我们在实际开发工作中&#xff0c;不管是用来阅读源码还是在开发过程中都需要进行代码调试。 以下为大家准备了一篇关于IntelliJ IDEA-Debug断点调试的文章&#xff0c;如…

嗨 Jina,帮我画一幅高山流水图

本项目将 Whisper 与 Stable Diffusion 模型结合&#xff0c;可以直接完成语音生成图像的任务。用户可以语音输入一个短句&#xff0c;Whisper 会自动将语音转化为文本&#xff0c;接着&#xff0c;Stable Diffusion 会根据文本生成图像。 本项目基于 Jina AI MLOps 平台搭建&a…

一个Python爬虫案例,带你掌握xpath数据解析方法!

文章目录 xpath基本概念xpath解析原理环境安装如何实例化一个etree对象&#xff1a;xpath(‘xpath表达式’)xpath爬取58二手房实例爬取网址完整代码效果图xpath图片解析下载实例爬取网址完整代码效果图xpath爬取全国城市名称实例爬取网址完整代码效果图xpath爬取简历模板实例爬…

【pygame学习+实战】第一篇:游戏最小系统

14天学习训练营导师课程&#xff1a; 李宁《Python Pygame游戏开发入门与实战》 李宁《计算机视觉OpenCV Python项目实战》1 李宁《计算机视觉OpenCV Python项目实战》2 李宁《计算机视觉OpenCV Python项目实战》3 文章目录前言一、什么是pygame&#xff1f;1.1 学习pygame的用…

当我们谈论DDD时我们在谈论什么

谈论到 DDD&#xff0c;我们会聊事件风暴&#xff0c;会聊限界上下文&#xff0c;会聊六边形架构&#xff0c;会聊实体值对象。这些概念各不相同&#xff0c;相关的概念也很不一样&#xff0c;但都属于DDD的范畴。见过了很多DDD的讨论和工作坊&#xff0c;我发现大家唇枪舌剑无…

【同时完成超分和MEF】

Deep Coupled Feedback Network for Joint Exposure Fusion and Image Super-Resolution &#xff08;用于联合曝光融合和图像超分辨的深度耦合反馈网络&#xff09; 如今&#xff0c;人们已经习惯了拍照来记录自己的日常生活&#xff0c;然而&#xff0c;照片实际上与真实的…

SB30100LCT-ASEMI插件肖特基二极管SB30100LCT

编辑-Z SB30100LCT在TO-220AB封装里采用的2个芯片&#xff0c;其尺寸都是94MIL&#xff0c;是一款插件肖特基二极管。SB30100LCT的浪涌电流Ifsm为200A&#xff0c;漏电流(Ir)为12uA&#xff0c;其工作时耐温度范围为-55~150摄氏度。SB30100LCT采用金属硅芯片材质&#xff0c;里…

解决OpenCV在Cmake时,因网络问题无法下载部分所需文件

解决OpenCV在Cmake时&#xff0c;因网络问题无法下载部分所需文件 在安装CUDA-Opecv进行Cmake的过程中&#xff0c;因为网络问题很多文件都无法下载。可以在你的opencv/.cache下可以看到&#xff0c;很多文件都是0kb的。这样肯定是不行的&#xff0c;我们要保证每个文件都要下…