day33打卡

day33打卡

1005. K 次取反后最大化的数组和

解法,贪心:局部最优:让绝对值大的负数变为正数,当前数值达到最大-》整体最优:整个数组和达到最大。

class Solution {static bool cmp(int a, int b) {return abs(a) > abs(b);}
public:int largestSumAfterKNegations(vector<int>& nums, int k) {//按绝对值,从大到小排列sort(nums.begin(), nums.end(), cmp);//从左到右更新负数for(int i = 0; i < nums.size(); i++){if(k == 0) break;if(nums[i] < 0 && k > 0){nums[i] *= -1;k--;}}//k不为0,反复更新最小的数if(k % 2 == 1) nums[nums.size()-1] *= -1;//求和int sum = 0;for(auto& e : nums) sum += e;return sum;}
};

134. 加油站

解法,贪心:当前累加的和curSum一旦小于0,起始位置至少要是i+1,因为从i之前开始一定不行。全局最优:找到可以跑一圈的起始位置。

class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int curSum = 0, totalSum = 0, start = 0;for(int i = 0; i < gas.size(); i++){curSum += gas[i] - cost[i];totalSum += gas[i] - cost[i];//如果当前位置油耗已经小于0,就更新起始位置if(curSum < 0){start = i+1;curSum = 0;}}//总差值小于0,说明油不够if(totalSum < 0) return -1;return start;}
};

135. 分发糖果

解法,贪心:

  • 一次是从左到右遍历,只比较右边孩子评分比左边大的情况。
  • 一次是从右到左遍历,只比较左边孩子评分比右边大的情况。

确定一边之后,再确定另一边,比较每一个孩子的左边,然后再比较每个孩子的右边

class Solution {
public:int candy(vector<int>& ratings) {vector<int> candyNum(ratings.size(), 1);//从左向右,判断右边大于左边孩子评分的情况for(int i = 1; i < ratings.size(); i++){//此时局部最优:只要右边评分比左边大,右边的孩子就多一个糖果,//全局最优:相邻的孩子中,评分高的右孩子获得比左边孩子更多的糖果if(ratings[i] > ratings[i-1])candyNum[i] = candyNum[i-1] + 1;}//从右向左,判断左边孩子大于右边孩子的情况for(int i = ratings.size()-2; i >= 0; i--){//局部最优:取candyVec[i + 1] + 1 和 candyVec[i] 最大的糖果数量,\// 保证第i个小孩的糖果数量既大于左边的也大于右边的。//全局最优:相邻的孩子中,评分高的孩子获得更多的糖果。if(ratings[i] >ratings[i+1])candyNum[i] = max(candyNum[i], candyNum[i+1] +1);}//统计总和int ret = 0;for(auto& e : candyNum) ret += e;return ret;}
};

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

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

相关文章

51_蓝桥杯_数码管静态显示

一 电路 二 数码管静态显示工作原理 三 代码 代码1 实现第一个数码管显示数字6的功能 #include "reg52.h"unsigned char code SMG_Duanma[18] {0xc0,0xf9.0xa4,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,0xc0,0x86,0x8e,0xbf,0x7f};void Delay(unsignde int t) {wh…

001:自动驾驶概述

摘要&#xff1a;本文介绍国内外自动驾驶的发展历程及现状、汽车制造商、技术公司、传感器制造商、芯片制造商、地图供应商、软件开发商以及汽车零部件供应商。 国 外 一、发展历程及现状 起步阶段&#xff08;1990年-2005年&#xff09;&#xff1a;在这个阶段&#xff0c;自…

创建Maven项目

目录 创建新项目配置Maven配置资源地址下载资源 测试代码 创建新项目 创建一个新项目。 创建包&#xff0c;选择Maven&#xff0c;JDK选择1.8 。 点击创建。 创建完成。 配置Maven 点击设置图标&#xff0c;点击Settings. 搜索maven&#xff0c;点击Builde&#xff0c;…

【STM32 CubeMX】GPIO_HAL库源码分析

文章目录 前言一、GPIO_HAL库源码分析1.1 初始化GPIO1.2 HAL_GPIO_Init源码分析GPIO_InitTypeDef初始化结构体HAL_GPIO_Init函数 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技…

05.QT坐标系

1. 坐标系原点 坐标系原点就是屏幕/窗口的左上角&#xff0c;X向右增长&#xff0c;Y向下增长。 2.设置控件位置 设置控件位置&#xff0c;就相当于是需要指定控件的坐标&#xff0c;对于该控件来说&#xff0c;其坐标原点是其父窗口/父控件的左上角。 设置方法就是通过控件的…

C++ Webserver从零开始:配置环境(九)——下载github的项目进行测试

前言 大家好&#xff0c;我又来更新Webserver的博客了。上一次更新这个专栏时2024.2.5号&#xff0c;离现在已经13天了。非常抱歉&#xff0c;中间隔了那么久。一方面是基础知识学完之后&#xff0c;就要开始自己写代码了。看基础知识和写代码是两回事&#xff0c;理论和实践的…

BUGKU-WEB 变量1

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; flag In the variable !<?php error_reporting(0); include "flag1.php"; highlight_file(__file__); if(isset($_GET[args])){$args $_GET[args];if(!preg_match("/^\w$/",$args…

数据库概述、部署MySQL服务、必备命令 、密码管理、安装图形软件、SELECT语法 、筛选条件

目录 1 案例1&#xff1a;构建MySQL服务器 1.1 问题 1.2 方案 1.3 步骤 2 案例2&#xff1a;密码管理 2.1 问题 2.2 步骤 3 案例3&#xff1a;安装图形软件 3.1 问题 3.2 方案 3.3 步骤 4 案例4&#xff1a;筛选条件 4.1 问题 4.2 方案 4.3 步骤 1 案例1&#x…

AcWing 1050 鸣人的影分身(复杂DP ——整数划分问题)

[题目概述] 在火影忍者的世界里&#xff0c;令敌人捉摸不透是非常关键的。 我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例子。 影分身是由鸣人身体的查克拉能量制造的&#xff0c;使用的查克拉越多&#xff0c;制造出的影分身越强。 针对不同的作…

【Linux】进程的初步认识(二)

进程的初步认识 前言查看进程通过系统调用创建进程关于创建进程的几点补充 前言 之前的一篇文章(文章链接)已经初步对于进程有了一个认识&#xff0c;这篇文章主要是介绍如何去查看进程的相关信息以及创建一个进程的相关知识 查看进程 查看进程的信息可以在/proc系统文件夹中查…

C# Newtonsoft.Json解析json到自定义实体类

使用Newtonsoft.Json解析json到自定义实体类也很方便&#xff0c;关键点在于实体类定义属性的时候加上JsonProperty标签。最简单的一种形式可以形如这样&#xff1a; public class BloodInfo {/// <summary>/// 输血品种/// </summary>[JsonProperty("bld_ca…

代码随想录刷题笔记-Day19

1. 二叉搜索树的最小绝对差 530. 二叉搜索树的最小绝对差https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝…

ZigBee学习——基于AF的数据通信

文章目录 一、简单描述符1.1 简单介绍1.2 简单描述结构体介绍1.3 结构体中的簇1.4 应用场景 二、AF通信原理2.1 通信过程2.2 端点号分类2.3 通信方式2.4 注册简单描述符 三、数据发送API简介3.1 AF层数据发送API3.2 基于AF层封装的通信API3.2.1 点对点通信API3.2.2 广播通信API…

数据库管理-第151期 Oracle Vector DB AI-03(20240218)

数据库管理151期 2024-02-18 数据库管理-第151期 Oracle Vector DB & AI-03&#xff08;20240218&#xff09;1 向量数据库应用场景2 Oracle Vector DB3 Vector数据类型4 Vector运算5 Vector DML插入向量获取向量 总结 数据库管理-第151期 Oracle Vector DB & AI-03&am…

LeetCode 热题 100 Day01

哈希模块 哈希结构&#xff1a; 哈希结构&#xff0c;即hash table&#xff0c;哈希表|散列表结构。 图摘自《代码随想录》 哈希表本质上表示的元素和索引的一种映射关系。 若查找某个数组中第n个元素&#xff0c;有两种方法&#xff1a; 1.从头遍历&#xff0c;复杂度&#xf…

【Spring】三级缓存

目录标题 触发所有未加载的实例a - 开始getBean&#xff08; doGetBean&#xff09; - 获取单例beangetSingleton() - 获取单例beancreateBean&#xff08;doCreateBean&#xff09; - 创建beancreateBeanInstance - 创建并返回beanaddSingletonFactory -放三级缓存populateBea…

序列发生器

一开始想直接FSM&#xff0c;划分出6状态依次输出对应的。但其实只要6比特的移位寄存器&#xff0c;每次输出高位。复位后的默认值时6’b001_011。这样就可以实现循环&#xff0c;这种移位寄存器也叫barrel_shifter。循环移位。也可以使用循环计数器&#xff0c;然后case计数器…

<爬虫Error篇>:乱码问题

前言: 当涉及到网页编码问题时&#xff0c;经常会遇到不同页面使用不同编码方式的情况。这可能导致在解析页面时出现乱码&#xff0c;使我们无法正确获取页面内容 正文: 网页的编码问题: 在处理网页编码问题之前&#xff0c;我们需要了解一些基础知识。网页中的编码方式通常…

JRT监听-PDF-Excel-Img

依赖全新设计&#xff0c;我们无需再顾虑历史兼容性的束缚&#xff1b;同时&#xff0c;基于多年来累积的深入需求理解&#xff0c;JRT监听机制巧妙地借助CMD命令模式&#xff0c;达成了监听的全面统一。无论是PDF、Excel还是图片文件&#xff0c;都不再需要特殊对待或额外区分…

C++递归(2)

输出1~n之间所有的整数 问题描述&#xff1a;从键盘读入一个整数n&#xff0c;请循环输出1∼n之间所有的整数&#xff0c;每行输出1个。比如&#xff0c;假设n5&#xff0c;那么输出结果如下&#xff1a; 1 2 3 4 5 输入一个整数n。输出输出1∼n之间所有的整数。样例 输…