代码随想录算法训练营第36期DAY41

DAY41

动态规划理论基础

还差闫氏分析法没学完。见B站收藏夹。

前两题学习初始化方式就好vector<int> dp(N+1);

509斐波那契数

简单。

  1. class Solution {
  2. public:
  3.     int fib(int N) {
  4.         if (N <= 1return N;
  5.         int dp[2];
  6.         dp[0] = 0;
  7.         dp[1] = 1;
  8.         for (int i = 2; i <= N; i++) {
  9.             int sum = dp[0] + dp[1];
  10.             dp[0] = dp[1];
  11.             dp[1] = sum;
  12.         }
  13.         return dp[1];
  14.     }
  15. };

70爬楼梯

简单。

  1. class Solution {
  2. public:
  3.     int climbStairs(int n) {
  4.         if (n <= 1return n;
  5.         int dp[3];
  6.         dp[1] = 1;
  7.         dp[2] = 2;
  8.         for (int i = 3; i <= n; i++) {
  9.             int sum = dp[1] + dp[2];
  10.             dp[1] = dp[2];
  11.             dp[2] = sum;
  12.         }
  13.         return dp[2];
  14.     }
  15. };

746使用最小花费爬楼梯

不会做了,实在想不出来。

代码随想录官方解答:

现在会了。主要是状态转移的形式,学一下:

  1. class Solution {
  2. public:
  3.     int minCostClimbingStairs(vector<int>& cost) {
  4.     if(cost.size()==2return min(cost[0],cost[1]);
  5.     vector<intdp(cost.size()+1);
  6.     dp[0]=0,dp[1]=0;
  7.     for(int i=2;i<dp.size();i++){
  8.         dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
  9.     }
  10.     return dp[dp.size()-1];
  11.     }
  12. };

54螺旋矩阵

厦大保研夏令营考过,练一练。

终于过了,卡在记录该位置是否已经走过,用unordered_set, unordered_map显然都不行。想复杂了,用二维数组bool就好了。

  1.     class Solution {
  2.     public:
  3.         vector<intspiralOrder(vector<vector<int>>& matrix) {
  4.             vector<int> res;
  5.             int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
  6.             vector<vector<bool>> flag(matrix.size(),vector<bool>(matrix[0].size(),false));
  7.             int size=matrix.size()*matrix[0].size();
  8.             for(int x=0,y=0,d=0,k=1;k<=size;k++){
  9.                 flag[x][y]=true;
  10.                 res.push_back(matrix[x][y]);
  11.                 int a=x+dx[d],b=y+dy[d];
  12.                 if(a<0||a>=matrix.size()||b<0||b>=matrix[0].size()||flag[a][b]){
  13.                     d=(d+1)%4;
  14.                     a=x+dx[d],b=y+dy[d];
  15.                 }
  16.                 x=a,y=b;
  17.             }
  18.             return res;
  19.         }
  20.     };

59螺旋矩阵ii

厦大保研夏令营考过,练一练。ACWING语法基础课做过,再写一遍:

还是写不出来,不知道该怎么利用偏移量去更新。

加油吧:

  1. class Solution {
  2. public:
  3.     vector<vector<int>> generateMatrix(int n) {
  4.     int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
  5.     vector<vector<int>> res(n,vector<int>(n,0));
  6.     int mi=n*n;
  7.     for(int x=0,y=0,d=0,k=1;k<=mi;k++){
  8.         res[x][y]=k;
  9.         int a=x+dx[d],b=y+dy[d];
  10.         //撞墙或者走过了,不要漏了“走过”
  11.         if(a<0||a>n-1||b<0||b>n-1||res[a][b]){
  12.             d=(d+1)%4;
  13.             a=x+dx[d],b=y+dy[d];
  14.         }
  15.         x=a,y=b;
  16.     }
  17.     return res;
  18.     }
  19. };

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

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

相关文章

plt画图中文乱码

1、使用font_manager的FontProperties解决 通过FontProperties来设置字符及大小&#xff0c;来解决中文显示的问题&#xff0c;代码如下&#xff1a; import matplotlib import matplotlib.pyplot as pltpath "..\simsun.ttc"#改成你自己的文件路径 font FontProp…

【物联网实战项目】STM32C8T6+esp8266/mqtt+dht11+onenet+uniapp

一、实物图 前端uniapp效果图&#xff08;实现与onenet同步更新数据&#xff09; 首先要确定接线图和接线顺序&#xff1a; 1、stm32c8t6开发板连接stlinkv2下载线 ST-LINK V2STM323.3V3.3VSWDIOSWIOSWCLKSWCLKGNDGND 2、ch340串口连接底座&#xff08;注意RXD和TXD的连接方式…

NSS题目练习4

[LitCTF 2023]1zjs 打开后是一个游戏&#xff0c;用dirsearch扫描&#xff0c;什么都没发现 查看源代码搜索flag&#xff0c;发现没有什么用 搜索php&#xff0c;访问 出现一堆符号&#xff0c;看样子像是jother编码 解码得到flag&#xff0c;要删掉[] [LitCTF 2023]Http pro …

37、Flink 的窗口函数(Window Functions)详解

窗口函数&#xff08;Window Functions&#xff09; a&#xff09;概述 定义了 window assigner 之后&#xff0c;需要指定当窗口触发之后&#xff0c;如何计算每个窗口中的数据&#xff0c; 即 window function。 窗口函数有三种&#xff1a;ReduceFunction、AggregateFunc…

嵌入式学习记录5.27(c++基础1)

目录 一.C和C的区别 二.输入输出流类 2.1输出cout 2.2输入cin 三.命名空间 2.1使用命名空间中的标识符 2.2命名空间中声明函数 2.3命名冲突问题 2.4匿名空间 2.5命名空间添加&#xff0c;嵌套&#xff0c;重命名 四.字符串的使用 4.1string类 4.2C风格和C风格字符串…

LeetCode27.移除元素

题目链接&#xff1a; 27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 思路分析&#xff1a;同样属于经典的双指针移动问题&#xff0c;要掌握固定的思路即可。 算法分析&#xff1a;这个题目可以这样处理&#xff0c;我们把所有非val 的元素都向前移动&#xff0c;把…

Java面试八股之线程池是怎么实现的

线程池是怎么实现的 线程池是一种基于池化技术的线程管理方式&#xff0c;通过预先创建一定数量的线程并保持在池中待命&#xff0c;从而在有任务来临时能够快速分配线程处理任务&#xff0c;而无需频繁创建和销毁线程&#xff0c;以此达到提升系统性能、减少资源消耗的目的。…

推荐《从零开始大模型开发与微调》

大模型是深度学习是当前AI和NLP研究与产业中最重要的方向之一。 本书用PyTorch 2.0作为学习大模型的基本框架&#xff0c;以ChatGLM为例详细讲解大模型的基本理论、算法、程序实现、应用实战以及微调技术&#xff0c;为读者揭示大模型开发技术。 《从零开始大模型开发与微调&…

两个数组的交集-力扣

想到的解法是使用两个哈希表&#xff0c;s1用来统计nums1中出现过的数字&#xff0c;然后遍历nums2数组&#xff0c;当能够在s1中查找到nums2的元素时&#xff0c;将这个元素添加到s2中&#xff0c;最后遍历s2&#xff0c;将其中的元素添加到返回数组中。 但最开始写时&#xf…

外星人存在与否......----小话外星人(1)

前一段时间&#xff0c;看了好多关于UFO、外星人、宇宙、远古外星人的视频和电子书&#xff0c;最后发现&#xff0c;这样的东西还是不要看多为好&#xff0c;搞得好像这些是真的似的&#xff0c;有时睡觉会被意外惊醒&#xff0c;想多了...... 1、外星人存在吗 不管有多少UFO的…

Windows10映射网络驱动器之后不显示映射盘

目录 背景解决步骤1、按 Windows R 打开运行2、打开注册表编辑器3、 System上新建-- DWORD(32bit)4、对新建的文件重命名5、将EnableLinkedConnections的数值改为16、退出注册表编辑器&#xff0c;重启系统。 知识扩展断开连接备份注册表 背景 目前有一台NAS服务器,和一台lin…

Vuex 页面刷新数据丢失怎么解决

当Vuex中的数据在页面刷新后丢失时&#xff0c;这通常是因为Vuex的状态数据是保存在运行内存中的&#xff0c;页面刷新会导致Vue实例重新加载&#xff0c;进而Vuex中的数据被重置为初始状态。为了解决这个问题&#xff0c;可以采取以下几种方法&#xff1a; 1. 使用浏览器的本…

工厂模式的三种实现方式

文章目录 1.引出工厂模式具体需求 2.传统模式1.类图2.目录结构3.pizzastore 用于设计pizza1.Pizza.java 抽象的Pizza类型2.CheesePizaa.java CheesePizaa3.GreekPizza.java GreekPizza 4.order 用于订购和制作pizza1.OrderPizza.java 制作pizza2.PizzaStore.java 订购pizza 5.优…

【Redis】 关于列表类型

文章目录 &#x1f343;前言&#x1f340;常见操作命令介绍&#x1f6a9;lpush&#x1f6a9;lpushx&#x1f6a9;rpush&#x1f6a9;rpushx&#x1f6a9;lrange&#x1f6a9;lpop&#x1f6a9;rpop&#x1f6a9;lindex&#x1f6a9;linsert&#x1f6a9;llen&#x1f6a9;lrem&…

“按摩”科技?

都说A股股民是特别善于学习的&#xff0c;这不市场又现新概念——“按摩科技”&#xff0c;成立仅6年&#xff0c;把上门按摩干到35亿营收也是没谁了&#xff0c;现在号称有1000万用户&#xff0c;3万家入驻商户数的按摩平台&#xff0c;难道就凭借2.5万名女技师&#xff0c;活…

【Django】中间件实现钩子函数预处理和后处理,局部装饰视图函数

在app文件夹里新建middleware.py继承MiddlewareMixin&#xff0c; 编写中间件类&#xff0c;重写process_request、process_response钩子函数 from django.http import HttpRequest, HttpResponse from django.utils.decorators import decorator_from_middleware from django…

关于pytest中用例名称使用中文乱码的解决

场景&#xff1a;使用pytest.mark.parametrize装饰器为用例自定义名称时&#xff0c;运行显示乱码。如下图所示&#xff1a; 解决方案&#xff1a; 1.在根目录 pytest.ini中增加一行代码 [pytest] disable_test_id_escaping_and_forfeit_all_rights_to_community_supportTrue…

NAT 网络转换

NAT(Network Address Translation) 网络地址转换 0x01 NAT 简介 为什么要使用 NAT IPv4 网络地址紧缺&#xff0c;从而出现了私有网段&#xff0c;来补充地址&#xff0c;但私有网段不课访问 internet 所以出现了 NAT 地址转换&#xff0c;将私有地址&#xff0c;转换为公网 I…

一口气看完es(上)

此系列博客分为上中下3篇&#xff1a;上篇是关于es的概念和对数据的增删改操作&#xff0c;中篇是对数据的查询、对搜索结果进行处理操作&#xff0c;下篇是介绍怎么在Java代码中调用和操作es。 基本概念 1、es是什么&#xff1f;有什么作用&#xff1f; es全名是elasticsea…

关于0成本部署个人博客

分享一个文章关于零成本搭建个人博客 参考&#xff1a;‘关于部署博客hexoshokagithub的流程以及问题’ - 关于博客部署 | XiaoYang Guo Welcome to Guo Xiaoyangs personal blog 欢迎来到郭晓阳的个人博客 (1330303.github.io) 这个博主讲的流程很全&#xff0c;而且回答也…