2024.8.23 刷题总结

2024.8.23

**每日一题**

198.打家劫舍,这道题是一道简单的入门动态规划问题,根据题目意思,我们不能取数组中相邻的元素然后还必须满足总结果最大,所以我们可以维护一个数组,用来保存在数组每个位置之前能取到的最大值,然后最后输出第n-1个元素的值即为答案。

转移公式如下:

 dp[i]=max(dp[i-2]+nums[i],dp[i-1]);

class Solution {
public:int rob(vector<int>& nums) {int n = nums.size();if(n==1) return nums[0];vector<int> dp(n,0);dp[0]=nums[0];dp[1]=max(nums[0],nums[1]);for(int i = 2;i<n;i++){dp[i]=max(dp[i-2]+nums[i],dp[i-1]);}return dp[n-1];}
};

279.完全平方数,这道题考察的是动态规划的知识,依题意得,我们需要找到最少的平方数之和使得等于要求的数,我们首先会想到用离该数最近的完全平方数来考虑,但是这样不方便枚举和遍历,所以我们采用动态规划的一般方法,先处理前面的数,再遍历到后面的数。本题需要维护一个到当前位置需要最少完全平方数的数组,然后开始从1遍历到n,这期间需要枚举所有小于i的完全平方数用来找到最小的答案,每次循环起点将dp[i]设置为i,因为这是最多的情况,然后依次比较取最小值,转移方程如下:

 dp[i]=min(dp[i],dp[i-j*j]+1);

class Solution {
public:int numSquares(int n) {vector<int> dp(n+1,0);dp[0]=0;dp[1]=1;for(int i = 2;i<=n;i++){dp[i]=i;for(int j =1;j*j<=i;j++){dp[i]=min(dp[i],dp[i-j*j]+1);}}return dp[n];  }
};

 322.零钱兑换,这道题是考察动态规划的知识,本题也是仿照一般的动态规划的状态转移的思想来完成。首先我们需要维护一个数组表示达到每个金额需要的最少硬币数目,然后遍历求值,第一个状态为金额,从1遍历到n,第二个状态是用的硬币种类,从0遍历到数组末尾,如果当前金额一直低于硬币面额就继续,否则就更新当前所需数目最小值,最后输出所需金额的数目:

 dp[i]=min(dp[i],dp[i-coins[j]]+1);

class Solution {
public:int coinChange(vector<int>& coins, int amount) {vector<int> dp(amount+1,amount+1);dp[0]=0;int n = coins.size();for(int i = 0;i<=amount;i++){for(int j = 0;j<n;j++){if(i-coins[j]<0) continue;dp[i]=min(dp[i],dp[i-coins[j]]+1);}}return (dp[amount]==amount+1) ? -1 : dp[amount]; }
};

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

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

相关文章

【openwrt-21.02】openwrt-21.02 T750 按键GPIO自动进入刷机模式功能实现

Openwrt版本 NAME="OpenWrt" VERSION="21.02-SNAPSHOT" ID="openwrt" ID_LIKE="lede openwrt" PRETTY_NAME="OpenWrt 21.02-SNAPSHOT" VERSION_ID="21.02-snapshot" HOME_URL="https://openwrt.org/" …

k8s 部署Ruoyi-Vue-Plus之vue打包镜像

在这里插入图片描述 在这篇文章中&#xff0c;解释如何通过容器化&#xff08;Docker&#xff09;来打包和部署前端项目&#xff0c;替代之前手动维护版本的方式 1.nginx配置 在 ruoyi-ui 项目的根目录下创建一个 nginx.conf 文件, 我没有使用monitor-admin和xxljob-admin模块…

maven 从特定module(项目)重新开始编译

前言 一般情况下&#xff0c;多module的项目数量过少&#xff0c;可能不需要使用到这个功能&#xff0c;但是当项目过多就很有必要&#xff0c;例如有20个module 编译到最后一个报错了&#xff0c;那重新构建的话 就会从第一个项目再来一遍&#xff0c;是不是很烦躁。 实践 …

语言基础/单向链表的构建和使用(含Linux中SLIST的解析和使用)

文章目录 概述简单的链表描述链表的术语简单实现一个单链表 Linux之SLIST机理分析结构定义单链表初始化单链表插入元素单链表遍历元素单链表删除元素 Linux之SLIST使用实践纯C中typedef重命名带来的问题预留 概述 本文讲述了数据结构中单链表的基本概念&#xff0c;头指针、头…

分发糖果

题目 老师想给孩子们分发糖果&#xff0c;有 N 个孩子站成了一条直线&#xff0c;老师会根据每个孩子的表现&#xff0c;预先给他们评分。 你需要按照以下要求&#xff0c;帮助老师给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧…

前端面试——什么是原型和原型链

背景 最近看到了很有意思的东西&#xff0c;原型和原型链 我们首先看看MDN怎么讲&#xff1a;继承与原型链 - JavaScript | MDN 不过文档里面也没有给出原型的定义&#xff1f;&#xff1f;&#xff1f; 不过里面提到原型链&#xff0c;是指对象层层向上寻找原型形成的路径…

CPP中lamada表达式作用一览[more cpp-6]

一般语法 CPP中的lambda 表达式的本质就是匿名函数&#xff0c;它可以在代码中定义一个临时的、局部的函数.为什么需要lamada表达式&#xff1f; 因为命名是个大问题 想名字以及避免命名冲突是很劳神费力的事&#xff0c;这就是lamada表达式的优点(lamada优点表现为简洁性)总…

如何在不格式化的情况下解锁 Android 智能手机密码

如果您忘记密码&#xff0c;您的 Android 移动设备将锁定您。发生这种情况时&#xff0c;通常可以通过恢复出厂设置来重新获得对设备的访问权限。可悲的是&#xff0c;这将导致所有数据丢失。下面列出的是解锁锁定的Android 手机而不会丢失任何个人数据的有效方法。 Android 手…

编程学习中的“知识宝库”打造秘籍

编程学习中的“知识宝库”打造秘籍 在编程学习的道路上&#xff0c;我们犹如航海家在知识的海洋中探索前行。而高效的笔记记录和整理方法&#xff0c;无疑就是那张珍贵的航海图&#xff0c;引领我们在浩瀚的编程知识海洋中找到方向。 一、为什么需要一个好的笔记系统 编程知…

Ps:首选项 - 界面

Ps菜单&#xff1a;编辑/首选项 Edit/Preferences 快捷键&#xff1a;Ctrl K Photoshop 首选项中的“界面” Interface选项卡可以定制 Photoshop 的界面外观和行为&#xff0c;从而创建一个最适合自己工作习惯和需求的工作环境。这些设置有助于提高工作效率&#xff0c;减轻眼…

单片机外部中断+定时器实现红外遥控NEC协议解码

单片机外部中断定时器实现红外遥控NEC协议解码 概述解码过程参考代码 概述 红外(Infrared&#xff0c;IR)遥控&#xff0c;是一种通过调制红外光实现的无线遥控器&#xff0c;常用于家电设备&#xff1a;电视机、机顶盒等等。NEC协议采用PPM(Pulse Position Modulation&#x…

算法题目杂记

差分 来源 https://www.acwing.com/problem/content/799/ 题目 输入一个长度为 n的整数序列。 接下来输入 m个操作&#xff0c;每个操作包含三个整数 l,r,c&#xff0c;表示将序列中 [l,r] 之间的每个数加 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数…

Vue的计算属性:methods方法、computed计算属性、watch监听属性

1、methods 方法 在创建的 Vue 应用程序实例中&#xff0c;可以通过 methods 选项定义方法。应用程序实例本身会代理 methods 选项中的所有方法&#xff0c;因此可以像访问 data 数据那样来调用方法。 【实例】在 Vue 应用程序中&#xff0c;使用 methods 选项定义获取用户信…

实验16:定时器中断实验

无硬件图&#xff0c;用到D1灯 代码main.c #include<reg52.h>typedef unsigned int u16; typedef unsigned char u8;sbit LED1P2^0;void delay_10us(u16 n) {while(n--); }void delay_ms(u16 ms) {u16 i,j;for(ims;i>0;i--)for(j110;j>0;j--); }void time0_init(v…

使用命令模式实现撤销与重做功能的完整指南

使用命令模式实现撤销与重做功能的完整指南 命令模式是一种行为型设计模式&#xff0c;它将请求封装成对象&#xff0c;以便于对请求进行参数化、排队和记录。命令模式不仅有助于实现撤销和重做功能&#xff0c;还能提高系统的灵活性和可维护性。在本文中&#xff0c;我们将详…

2月公开赛Web-ssrfme

考点&#xff1a; redis未授权访问 源码&#xff1a; <?php highlight_file(__file__); function curl($url){ $ch curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);echo curl_exec($ch);curl_close($ch); }if(isset($_GET[url…

数据结构-返回n年后牛的数量

第一年农场有1只成熟的母牛A,往后的每年: 每一只成熟的母牛都会生一只母牛每一只新出生的母牛都在出生的第三年成熟每一只母牛永远不会死 返回N年后牛的数量。 抽象公式就是 F(N) F(N-1) F(N-3). 矩阵公式: |F4, F3, F2| |F3,F2,F1| * 3阶矩阵 |F5, F4, F3| |F4,F3,F2| …

innodb_buffer_pool_size在线缩小操作

一、背景 测试数据库内存32G&#xff0c;只有MySQL数据库&#xff0c;但是innodb_buffer_pool_size设置了24G&#xff0c;导致经常出现lack of memory问题、lack of swap问题。 因为使用了MySQL5.7.36版本&#xff0c;利用innodb_buffer_pool_size参数值可在线调整的新特性&…

HTTP 414错误问题

问题描述&#xff1a; 在一次前端编辑报表完成&#xff0c;打开审核人选择弹出框的时候&#xff0c;layer直接报414错误。 问题分析&#xff1a; HTTP 414是HTTP协议中的一个状态码&#xff0c;表示请求的URI&#xff08;Uniform Resource Identifier&#xff09;过长&#…

进程的创建,结束,回收基础API

1、进程的创建 #include <sys/types.h> #include <unistd.h> pid_t fork(void); 主要功能: 将当前的进程复制一份,然后这两个进程同时从本函数的下一语句开始执行;该函数会返回两次,一次返回父进程,值是子进程的PID,一次返回子进程,值固定为0;父子进程是…