leecode每日一练

news2024/9/25 3:18:51

打家劫舍

在这里插入图片描述

我一开始的思路也是dp,但是转移方程想错了,这个题目转移方程应该是dp[i] = max(dp[i-2]+nums[i],dp[i-1])

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

拆炸弹

在这里插入图片描述
纯模拟就是sb,我用了差分数组,但是转移方程写死我了
我写的代码

class Solution {
public:
    vector<int> decrypt(vector<int>& code, int k) {
        int len = code.size();
        vector<int> ans(len);
        vector<int> p(len+1);
        p[0] = code[0];
        for(int i=1;i<len;i++){
            p[i] = p[i-1]+code[i];
        }
        if(k==0){
            return ans;
        }
        else if(k>0){
            for(int i=0;i<len;i++){
                if(i+k<len){
                    ans[i] += p[i+k]-p[i];
                }else{
                    ans[i] += p[len-1]-p[i];
                    int cha = k-(len-1-i);
                    if(cha>0)
                    ans[i] += p[cha-1];
                }
            }
            
        }else{
            k = -k;
            for(int i=0;i<len;i++){
                if(i>k){
                    if(i-1-k>=0)
                    ans[i] += p[i-1]-p[i-1-k];
                    else{
                        ans[i] += p[i-1];
                    }
                }else{
                    if(i>0)
                    ans[i] += p[i-1];
                    int cha = k-i;
                    ans[i] += p[len-1]-p[len-1-cha];
                }
            }
        }
        return ans;
    }
};

但是其实只要开两倍的空间就可以简单完成,下面这个思路是滑动窗口,但是其实差分也是可以的

class Solution {
public:
    vector<int> decrypt(vector<int>& code, int k) {
        int n = code.size();
        vector<int> res(n);
        if (k == 0) {
            return res;
        }
        code.resize(n * 2);
        copy(code.begin(), code.begin() + n, code.begin() + n);
        int l = k > 0 ? 1 : n + k;
        int r = k > 0 ? k : n - 1;
        int w = 0;
        for (int i = l; i <= r; i++) {
            w += code[i];
        }
        for (int i = 0; i < n; i++) {
            res[i] = w;
            w -= code[l];
            w += code[r + 1];
            l++;
            r++;
        }
        return res;
    }
};

基站建设

题目地址
在这里插入图片描述

一开始我的思路是差分,但是只能过五分之一的数据集,这是因为如果这些重叠的区域过多的话就会出现问题

给你看一下差分的代码

#include<bits/stdc++.h>
using namespace std;

const int N = 1000005;
int s[N];
int p[N];
int n;


int main() {
	cin >> n;
	int a, b;
	int mm = 0;
	for (int i = 1; i <= n; i++) {
		cin >> a >> b;
		int l = (a - b) > 1 ? a - b : 1;
		int r = (a + b) < N ? a + b : N - 1; mm = max(mm, r);
		s[l] += 1;
		s[r + 1] -= 1;
	}
	for (int i = 1; i <= mm; i++) {
		p[i] += p[i - 1] + s[i];
	}
	int re = 0;
	int now;
	int flag = 0;
	for (int i = 1; i <= mm; i++) {
		//cout << p[i] << " ";
		if (flag == 0 && p[i] > 1) {
			flag = 1; // 进入区域
			now = p[i];
		}
		if (flag == 1 && p[i] <= 1) {
			flag = 0; //出去
			re += now - 1;
		}
		if (flag == 1 && p[i] > 1) {
			now = max(now, p[i]);
		}
	}
	cout << n - re;
	return 0;
}

应该用贪心来做,就是一个活动安排问题

#include<bits/stdc++.h>
using namespace std;

const int N = 1000005;
struct node
{
	int start, end;
	bool operator<(node b) {
		return this->end < b.end;
	}
}a[N];

int n;
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		int x, b;
		cin >> x >> b;
		a[i].start = x - b;
		a[i].end = x + b;
	}
	sort(a + 1, a + 1 + n);
	if (n == 0) {
		cout << 0;
		return 0;
	}
	int ans = 1;
	int now = a[1].end;
	for (int i = 2; i <= n; i++) {
		if (a[i].start <= now) continue;
		now = a[i].end; ans++;
	}
	cout << ans;
	return 0;
}

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

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

相关文章

56.基于SSM实现的在线教育网站系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;采用Java的SSM框架作为开发技术&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SSM的在线教育网站的设计与实现管理工作系统化、规范…

【MySQL】第一次作业

【MySQL】第一次作业 1、在官网下载安装包2、解压安装包&#xff0c;创建一个dev_soft文件夹&#xff0c;解压到里面。3、创建一个数据库db_classes4、创建一行表db_hero5、将四大名著中的常见人物插入这个英雄表 写一篇博客&#xff0c;在window系统安装MySQL将本机的MySQL一定…

【华为】路由综合实验(OSPF+BGP基础)

【华为】路由综合实验 实验需求拓扑配置AR1AR2AR3AR4AR5PC1PC2 查看通信OSPF邻居OSPF路由表 BGPBGP邻居BGP 路由表 配置文档 实验需求 ① 自行规划IP地址 ② 在区域1里面 启用OSPF ③ 在区域1和区域2 启用BGP&#xff0c;使AR4和AR3成为eBGP&#xff0c;AR4和AR5成为iBGP对等体…

06.Git远程仓库

Git远程仓库 #仓库种类&#xff0c;举例说明 github gitlab gitee #以这个仓库为例子操作登录码云 https://gitee.com/projects/new 创建仓库 选择ssh方式 需要配置ssh公钥 在系统上获取公钥输入命令&#xff1a;ssh-keygen 查看文件&#xff0c;复制公钥信息内…

8.表格标签

为什么使用表格 表格简单通用表格结构稳定 表格的基本结构 单元格 行列跨行n为要跨的行数跨列n为要跨的列数 首先&#xff0c;我们做一个最基本的3x4表格&#xff0c;只用到了上述1.2.3三个标签&#xff0c;其中table标签里面的border是表格的边框线&#xff0c;代码和效果…

【DISC交流模型】项目管理必会的思维分析工具11

如何提升自己的领导力&#xff1f;我们可以根据DiSC模型&#xff0c;有针对性提升自我领导力 DISC模型是一种描述性格、行为风格倾向性的理论&#xff0c;也被称为“人类行为语言”。这一模型最初是由美国心理学家威廉莫尔顿马斯顿在20世纪初提出的&#xff0c;并在其1928年…

模电·静态工作点稳定的必要性

静态工作点稳定的必要性 静态工作点不但决定了电路是否会产生失真&#xff0c;而且还影响着电压放大倍数、输入电阻等动态参数。实际上&#xff0c;电源电压的波动、元件的老化以及因温度变化所引起晶体管参数的变化&#xff0c;都会造成静态工作点的不稳定&#xff0c;从而使动…

五一假期后,必读的10篇大模型论文

1.同时预测多个 token&#xff1a;更好更快的大型语言模型 目前&#xff0c;GPT 和 Llama 等大型语言模型&#xff08;LLMs&#xff09;都是通过下一个 token 预测损失来训练的。 在这项工作中&#xff0c;来自 Meta FAIR 的研究团队认为&#xff0c;训练语言模型同时预测多个…

【C语言】解决不同场景字符串问题:巧妙运用字符串函数

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、字符函数1.1 字符分类函数1.1.1 islower1.1.2 isupper 1.…

jetbra.zip教程 激活JetBrains全家桶Idea、pyCharm…亲测有效

本教程基于Windows系统 1、下载jetbra.zip 1.1、地址&#xff1a;https://3.jetbra.in/ 1.2、点击随便一个可用站点 1.3、找到左上角蓝色部分&#xff0c;点击下载 1.4、注意软件卡片上右上角支持的版本 1.5、不要关闭网页&#xff0c;留着&#xff0c;要等会用到 2、下载对应…

数据结构===二叉树

文章目录 概要二叉树的概念分类存储遍历前序中序后序 小结 概要 简单写下二叉树都有哪些内容&#xff0c;这篇文章要写什么 二叉树的概念分类&#xff0c;都有哪些二叉树遍历 对一个数据结构&#xff0c;最先入手的都是定义&#xff0c;然后才会有哪些分类&#xff0c;对二叉…

环保设备在线监控系统

随着环保意识的日益提升&#xff0c;对环境污染的监控与管理成为了我们不可忽视的重要任务。在这个背景下&#xff0c;HiWoo Cloud平台凭借其强大的环保设备在线监控系统&#xff0c;为环保事业注入了新的活力&#xff0c;助力我们共同迈向绿色未来。 一、环保设备在线监控系统…

速锐得深入研究比亚迪E5电控系统及BCU数据及DBC控制策略

新能源汽车中比亚迪作为世界品牌的佼佼者&#xff0c;其E5车型凭借出色的电控系统成为了市场上的一颗璀璨明星。比亚迪E5电控系统不仅体现了技术的先进性&#xff0c;更是智能化、高效率的代名词&#xff0c;它如同一位智慧的指挥官&#xff0c;精确地掌控着汽车的每一个动作&a…

iOS 获取相册标题时不显示中文

一、解决方案 设置info.plist中的Localization native development region 为 China即可 二、图片展示

vue3+vite+axios+ElementPlus+ElLoading简易封装

1.安装按需加载element-plus需要的依赖包 pnpm install element-pluspnpm install axios# 按需自动导入 pnpm install -D unplugin-vue-components unplugin-auto-import# 自动导入element-plus样式 pnpm install -D vite-plugin-style-import2.修改jsconfig.json {"com…

[贪心] 区间选点问题

905. 区间选点 - AcWing题库 思路&#xff1a;就是将所有区间按照右端点排序&#xff0c; 然后选取一些区间的右端点 代码&#xff1a; #include <iostream> #include <algorithm> #include <vector> using namespace std; const int N 100010;typedef p…

银行函证工作操作指引

银行函证工作操作指引 根据《关于加快推进银行函证规范化、集约化、数字化建设的通知》&#xff08;财会〔2022〕39号&#xff09;等文件要求&#xff0c;中国注册会计师协会和中国银行业协会制定了《银行函证工作操作指引》&#xff0c;对银行函证工作中的具体事项予以进一步明…

一款AI工作流项目:phidatahq/phidata

一款AI工作流项目&#xff1a;phidatahq/phidata 构建和测试功能强大的 AI 工作流程。该项目提供了一个工作流平台,可以结合大型语言模型(LLM)和各种工具,扩展模型的实用性和应用范围。[1][4][5] 开发各种 AI 助手应用,如客服聊天机器人、数据分析工具、研究助手等。phidata 提…

API接口接入电商平台通过商品链接URL、商品ID抓取淘宝taobao评论数据key接入示例

要接入淘宝taobao评论数据&#xff0c;你需要先注册一个API账号并获取相应的ApiKey和ApiSecret。接下来&#xff0c;你可以使用Python的requests库来调用API接口。 以下是一个示例代码&#xff1a; # coding:utf-8 """ Compatible for python2.x and python3.…

学习笔记:【QC】Android Q - phone 模块

一、phone init 流程图 二、phone MO 流程图 三、phone MT 流程图 四、Log分析(MO_qcril_hal_分析) 1、RILJ请求dial enqueue进队列&#xff0c;QCRIL-hal pop出来处理&#xff0c;最后还是调用qmi_client_send_msg_async发送给modem 11-07 17:29:23.598 2758 2758 D RILJ …