备战春招——12.1 算法

news2024/12/25 1:45:22

动态规划

动态规划的核心思想就是 本次只由上一次决定。

爬楼梯

在这里插入图片描述
第3阶由(第1节+2)和(第二节+1),不要想着往下迭代,不然那是个无穷底。所以f(x)=f(x-1)+f(x-2) (x>2)。所以就是当前只与上个操作相关。

class Solution {
public:
    int climbStairs(int n) {
        if(n==1) return 1;
        if(n==2) return 2;
        int a = 1; //f(x-2)
        int b = 2; //f(x-1)
        int sum = a+b;
        for(int i=4;i<=n;i++){
            a = b;      //更新f(x-2)  
            b =sum;     //更新f(x-1)
            sum = a+b;  //f(x) = f(x-1)+f(x-2)
          
        }
        return sum;
    }
};

杨辉三角

在这里插入图片描述
动态规划,还是写出哪个公式嘛,主要是控制好循环那个i层数字索引。

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> data;
        if(numRows==0) return data;
        //f(n)(m)=f(n-1)(m-1)+f(n-1)(m)  差不多就是这个了吧,每组第一个和最后一个都是1
        vector<int>  d;
        d.push_back(1);
        data.push_back(d);
        for(int i=1;i<numRows;i++){
            vector<int> d;
            d.push_back(1);
            for(int j=1;j<i;j++){
                //f(n)(m)=f(n-1)(m-1)+f(n-1)(m)  差不多就是这个了吧,每组第一个和最后一个都是1
                d.push_back(data[i-1][j-1]+data[i-1][j]);
            }
            d.push_back(1);
            data.push_back(d);
        }
        return data;
    }
};

杨辉三角2

在这里插入图片描述

what up。 swap(vector1,vector2);可以替换两个,这么爽吗。

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<int>  d;
        vector<int> data;
        if(rowIndex == 0) {
            d.push_back(1);
            return d;
        }
        for(int i=1;i<=rowIndex;i++){
            swap(data,d);   //可以直接转换哈
            data.clear();    //清空当前需要返回的数据。
            data.push_back(1);
            for(int j=1;j<i;j++){
                data.push_back(d[j-1]+d[j]);  //f(n)(m) = f(n-1)(m-1)+f(n-1)(m);
            }
            data.push_back(1);
          
        }
        return data;
    }
};

买卖股票的最佳时机

在这里插入图片描述
一遍遍历,mindp[i]=min(dp[i-1],price[i]) 这里面动态规划的是最小的价格,然后再计算最大的利润,不是直接的动态规划东西。

class Solution {
public:
    int maxProfit(vector<int>& prices) {
      //一次遍历,寻找前面的最小值,一遍扫描,然后寻找maxprofix
        //dp(x)=min(),然后去计算最大利润,也就是前面的最值。
        vector<int> dp(prices.size(),0);
        int max = 0;
        dp[0] = prices[0];
        for(int i=1;i<prices.size();i++){
            if(max<(prices[i]-dp[i-1])){
                max = (prices[i]-dp[i-1]);
            }
            dp[i] = min(dp[i-1],prices[i]);
        }
        return max;
    }
};

比特位计数

在这里插入图片描述
最高位有效,mod2为0或者1,如果除以2为0的话,表示是一样的1数字。如果余数为1的话,需要+1。

class Solution {
public:
    vector<int> countBits(int n) {
  
        //动态规划。
        //最高或者最低位有效位,其实就是找比上前一个多一个1的
        vector<int> data(n+1,0);

        data[0]=0;
        if(n==0) return data;
        data[1]=1;
        for(int i=2;i<=n;i++){
            if(i%2==0) data[i]=data[i/2];
            if(i%2==1) data[i]=data[i/2]+1;
        }
        return data;
    }
};

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

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

相关文章

docker安装卸载使用全教程

docker安装卸载使用全教程 1.确定你是Centos7及以上版本 cat /etc/redhat-release2.yum安装gcc相关依赖 yum install -y gcc Yum install -y gcc-c3.安装需要的软件包 sudo yum install -y yum-utils4.设置stable镜像仓库 这里设置的是国内阿里云的镜像库&#xff0c;国外的…

【计算机网络笔记】PPP协议

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

vue3中如何实现事件总线eventBus

使用插件 由于vue3中 “$ on”&#xff0c;$ off 和 $ once 实例方法已被移除&#xff0c;组件实例不再实现事件触发接口 所以我们可以使用官方推荐的这个第三方库实现同样的效果 mitt https://github.com/developit/mitt 安装 pnpm install mitt -S挂载全局写法 main.ts 初始…

[全球首款]开源智能串口屏方案发布

基于 AWTK 和 AWTK-MVVM 实现的串口屏方案。 界面修改数据&#xff0c;自动通知 MCU。 MCU 修改数据&#xff0c;自动更新界面。 1. 主要特色&#xff1a; 1.1 开发 强大的界面设计器 AWStudio。基于 AWTK 实现强大的 GUI 功能&#xff08;多窗口、输入法、动画和各种控件&am…

数据算法之层次聚类——(待完善)

1.数据挖掘入门笔记——层次聚类 ( 浮光掠影) 2.聚类算法&#xff1a;Hierarchical Clustering层次聚类 3.一文读懂层次聚类&#xff08;Python代码&#xff09; 4.层次聚类 5.聚类分析&#xff08;三&#xff09; 层次聚类及matlab程序 5.聚类算法之层次聚类&#xff08…

Linux文件系统 -- inode和block

目录 重要参数目录项fsck软连接&#xff0c;硬链接 重要参数 dumpe2fs /dev/sda1|more查看ext4文件元数据&#xff08;描述文件系统的数据&#xff09;&#xff0c;xfs_info查看xfs文件系统 superblock&#xff1a;超级块&#xff0c;记录此file system的整体信息&#xff0c…

SSM实战项目,基于Spring+SpringMVC+mybatis实现的人事管理系统源码+数据库+使用说明

SSM实战项目&#xff1a;人事管理系统&#xff08;蓝色版&#xff09; 一、员工管理系统项目说明&#xff1a; 该项目主要是完成SpringSpringMVCmybatis的完整整合&#xff0c;功能实现比较单一&#xff0c;就是一个完成增删改查的小项目&#xff01; 完整代码下载地址SSM实…

游戏网站的技术 SEO:提示和最佳实践

您是否希望提高游戏网站上的自然搜索可见性和用户参与度&#xff1f;如果是这样&#xff0c;实施技术SEO最佳实践是必不可少的。在这篇博文中&#xff0c;我们将提供使用技术 SEO 优化游戏网站的技巧和最佳实践&#xff0c;并讨论为什么它是搜索引擎优化 &#xff08;SEO&#…

熬夜会秃头——beta冲刺Day2

这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云这个作业要求在哪里团队作业—beta冲刺事后诸葛亮-CSDN社区这个作业的目标记录beta冲刺Day2团队名称熬夜会秃头团队置顶集合随笔链接熬夜会秃头——Beta冲刺置顶随笔-CSDN社区 目录 一、团队成员会议总结 1、成员…

【高效开发工具系列】驼峰下划线互转

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

centos7 yum安装redis

1.安装epel源 yum install epel-release -y 2.安装 参数-y是遇到yes/no时 自动yes yum install redis -y 3.查看redis安装的位置 whereis redis 4.打开配置文件 vim /etc/redis.config 5.修改密码 在打开的文件中输入 /requirepass 后按下确认键&#xff0c;(找下一个关…

常见的攻击防护

只做模拟机器使用&#xff0c;不使用真实机器 目录 一、 DHCP饿死和防护应对措施.................................. 1 1&#xff0c; 实验拓扑&#xff1a;...................................................... 2 2&#xff0c; 实验配置............................…

Web网页安全策略的研究及其实现方案

摘 要 越来越多的人使用电脑来接触互联网&#xff0c;事实上&#xff0c;使用Web技术的实现基于网络的不断完善和发展的交流网站&#xff0c;人们可以利用计算机网络技术&#xff0c;方便得到想要的任何信息。计算机网络的发展&#xff0c;也促进了相关产业的发展&#xff0c;…

C++11【下】

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb; 新的类功能类成员变量初始…

【pytorch】从yolo的make_grid理解torch.meshgrid、torch.stack

文章目录 简述1、torch.meshgrid 创建行列坐标2、torch.stack 结合行列坐标3、通过view函数扩展维度 简述 yolo检测 make_grid创建网格代码如下&#xff0c;那么什么是torch.meshgrid? def _make_grid(nx20, ny20):yv, xv torch.meshgrid([torch.arange(ny), torch.arange(…

三 STM32F4使用Sys_Tick 实现微秒定时器和延时

更多细节参考这篇 1. 什么是时钟以及作用 1.1 什么是时钟 时钟是由电路产生的周期性的脉冲信号&#xff0c;相当于单片机的心脏 1.2 时钟对于STM32的作用 指令同步&#xff1a;cpu和内核外设使用时钟信号来进行指令同步数据传输控制&#xff1a; 时钟信号控制数据在内部总…

CSS新手入门笔记整理:CSS图片样式

图片大小 语法 width:像素值; height:像素值; 图片边框&#xff1a;border 语法 边框&#xff1a;宽度值 样式值 颜色值&#xff1b; border:1px solid red; 图片对齐 水平对齐&#xff1a;text-align 语法 text-align:取值; 属性值 说明 left 左对齐(默认值) cent…

【Java Web学习笔记】 1 - HTML入门

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/html 零、网页的组成 HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息&#xff0c;可以包含文字、图片视频等。 CSS样式是表现。就像网页的外衣。比如&#xff0c;标题字体、…

go学习之goroutine和channel

文章目录 一、goroutine(协程)1.goroutine入门2.goroutine基本介绍-1.进程和线程说明-2.程序、进程和线程的关系示意图-3.Go协程和Go主线程 3.案例说明4.小结5.MPG模式基本介绍6.设置Golang运行的CPU数7.协程并发&#xff08;并行&#xff09;资源竞争的问题8.全局互斥锁解决资…

【渗透】记录阿里云CentOS一次ddos攻击

文章目录 发现防御 发现 防御 流量清洗 使用高防