代码随想录训练营Day35

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、加油站
  • 二、分发糖果
  • 三、柠檬水找零
  • 四、根据身高重建队列
    • 1.引入库
    • 2.读入数据
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

今天是跟着代码随想录刷题的第三十五天,主要是学习了加油站,分发糖果,柠檬水找零和根据身高重建队列这四道题。


提示:以下是本篇文章正文内容,下面案例可供参考

一、加油站

暴力解法:

class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int i;vector<int> a;int result=0;int start;int finish=1;int b;for(i=0;i<gas.size();i++){a.push_back(gas[i]-cost[i]);}for(i=0;i<a.size();i++){result=result+a[i];}if(result<0) return -1;for(start=0;start<a.size();start++){result=0;for(i=start;i<a.size();i++){result=result+a[i];if(result<0) {finish=0;break;}}for(i=0;i<start;i++){result=result+a[i];if(result<0) {finish=0;break;}}if(finish==1) {break;}finish=1;}return start;}
};

贪心算法

class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int curSum = 0;int totalSum = 0;int start = 0;for (int i = 0; i < gas.size(); i++) {curSum += gas[i] - cost[i];totalSum += gas[i] - cost[i];if (curSum < 0) {   // 当前累加rest[i]和 curSum一旦小于0start = i + 1;  // 起始位置更新为i+1curSum = 0;     // curSum从0开始}}if (totalSum < 0) return -1; // 说明怎么走都不可能跑一圈了return start;}
};

贪心算法就是我就一直累加,如果小于0,就说明前面这些都不可能是起点,因为如果是起点,那么起点到这大于0,整个小于0,前面第一段也小于0,说明有更早的起点,然后因为可以保持一直是最早的正数,所以这里就是最合适的起点的位置,可以累积正数。

二、分发糖果

思路:先从左到右保证如果右边大于左边,右边加1,不然就保持1,如果左边大于右边,左边加1和原本的比大小,取大的,就能保证两边了。
代码:

class Solution {
public:int candy(vector<int>& ratings) {int a=ratings.size();vector<int> result(ratings.size(), 1);int result1=0;int i;for(i=0;i<result.size()-1;i++){if(ratings[i+1]>ratings[i]){result[i+1]=result[i]+1;}}for(i=result.size()-1;i>0;i--){if(ratings[i-1]>ratings[i]){result[i-1]=max(result[i-1],result[i]+1);}}for(i=0;i<result.size();i++){result1=result1+result[i];}return result1;}
};

三、柠檬水找零

思路:这道题就是思考柠檬水所有可能得情况来一种情况一种情况分析就可以了
代码:

class Solution {
public:bool lemonadeChange(vector<int>& bills) {int five=0,ten=0,i=0;for(i=0;i<bills.size();i++){if(bills[i]==5) five++;if(bills[i]==10){if(five==0) return false;else ten++,five--;}if(bills[i]==20){if(five!=0&&ten!=0){five--;ten--;}else if(ten==0&&five>2){five=five-3;}else return false;}   }return true;}
};

四、根据身高重建队列

思路:
这道题就是按照身高由高到低先排个序,然后如果身高一样的,就第二位小的排序,首先得建立这个排序的思路,按照这个顺序排序以后,然后这种情况就能保证前面的和自己一样大或者比自己更大,再按照第二位看,是不是这个排序,比如第二位是3,就说明前面有三个比我要大,所以应该排在第三的位置。
所以看第二位是几,就排在那个位置就行。
版本一:

class Solution {
public:static bool cmp(const vector<int>& a, const vector<int>& b) {if (a[0] == b[0]) return a[1] < b[1];return a[0] > b[0];}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort (people.begin(), people.end(), cmp);vector<vector<int>> que;for (int i = 0; i < people.size(); i++) {int position = people[i][1];que.insert(que.begin() + position, people[i]);}return que;}
};

版本二:
代码:

class Solution {
public:// 身高从大到小排(身高相同k小的站前面)static bool cmp(const vector<int>& a, const vector<int>& b) {if (a[0] == b[0]) return a[1] < b[1];return a[0] > b[0];}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort (people.begin(), people.end(), cmp);list<vector<int>> que; // list底层是链表实现,插入效率比vector高的多for (int i = 0; i < people.size(); i++) {int position = people[i][1]; // 插入到下标为position的位置std::list<vector<int>>::iterator it = que.begin();while (position--) { // 寻找在插入位置it++;}que.insert(it, people[i]);}return vector<vector<int>>(que.begin(), que.end());}
};

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv('https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

相关文章

搭建ragflow的步骤

前提条件 CPU > 4 核 RAM > 16 GB Disk > 50 GB Docker > 24.0.0 & Docker Compose > v2.26.1 如果你并没有在本机安装 Docker&#xff08;Windows、Mac&#xff0c;或者 Linux&#xff09;, 可以参考文档 Install Docker Engine 自行安装。 启动服务器 …

C盘太满怎么办

C盘红了怎么办&#xff0c;最常见的问题是微信装在了C盘&#xff0c;需要通过设置来更换缓存文件位置。 此外&#xff0c;如果是工作电脑&#xff0c;钉钉、企业微信等都有可能产生和微信同样的问题&#xff0c;解决方式也相同&#xff0c;通过设置更换文件位置。 此外&…

Linux创建目录——mkdir命令,du命令,touch用法,创建tree拓扑图

1. mkdir 命令 格式 mkdir - 参数 路径 / 目录名 参数 -p &#xff1a;快速创建多级目录&#xff08;递归目录&#xff09; -v &#xff1a;显示创建目录的详细过程 例&#xff1a; [rootserver ~] # mkdir t1 [rootserver ~] # mkdir t2 t3 t4 [rootserver ~] # mk…

什么是GPIO口,GPIO口最简单的input/output

目录 一&#xff0c;什么是GPIO口 二&#xff0c;GPIO内部结构 三&#xff0c;GPIO口工作模式 一&#xff0c;什么是GPIO口 1.GPIO口是通用输入输出端口&#xff08;General-purpose input/output&#xff09;的英文缩写&#xff0c;是所有的微控制器必不可少的外设之一&…

每日一题系列-把字符串转换成整数

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 题目 题目分析 对于这道题目而言&#xff0c;我们需要做到的是将字符串转换成整数。 这里我们需要注意几个点 首先我们需要保证下标在这个范围之内&#xff0c;所以我们会在每…

【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;&#xff08;SqlServer报错&#xff09;SQL错误&#xff08;208&#xff09;&#xff1a;对象名‘string_split’无效 一、分析问题背景 在使用Python连接SqlSe…

第二证券:股票盘口是什么?股票盘口基础知识?

股票的盘口是指在生意过程中实时盘面数据窗口。 盘口信息有&#xff1a;托付份额、生意生意五档挂单数据、股票开盘价、股票收盘价、股票涨跌幅、股票最高价、股票最低价、股票价、股票的量比、股票的表里盘数据、股票的总成交量、股票的换手率、股票的总股本、股票的流通股本…

python笔记----少儿编程课程

第1课&#xff1a; 认识新朋友-python 知识点&#xff1a; 1、在英文状态下编写Python语句。 2、内置函数print()将结果输出到标准的控制台上&#xff0c;它的基本语法格式如下&#xff1a; print("即将输出的内容") #输出的内容要用引号引起来&#xff0c;可…

主播美颜工具开发全攻略:美颜SDK从基础到进阶的技术指南

今天&#xff0c;笔者将为你详细介绍美颜SDK的基础知识以及如何进行进阶开发。 一、美颜SDK基础知识 什么是美颜SDK&#xff1f; 美颜SDK是一种软件开发工具包&#xff0c;包含了一系列用于图像处理的算法和功能&#xff0c;主要用于实时视频处理和图像优化。开发者可以将美…

CentOS安装Docker教程(包含踩坑的经验)

目录 一.基础安装 ▐ 安装Docker 二.启动Docker服务 三.配置Docker镜像加速 一.基础安装 在安装Docker之前可能需要先做以下准备 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove docker \docker-client \docker-client-latest \docker-…

FastGPT 手动部署错误:MongooseServerSelectionError: getaddrinfo EAI_AGAIN mongo

在运行 FastGPT 时&#xff0c;mongodb 报如下错误&#xff1a; MongooseServerSelectionError: getaddrinfo EAI_AGAIN mongo 这是因为 mongo 没有解析出来&#xff0c;在 hosts 文件中添加如下信息&#xff1a; 127.0.0.1 mongo 重新运行 FastGPT 即可。 参考链接&#xff…

昇思25天学习打卡营第4天|网络构建

文章目录 网络构建 网络构建 在打卡第一天就简单演示了网络构建&#xff0c;一个神经网络模型表示为一个Cell&#xff0c;由不同的子Cell构成。使用这样的嵌套结构可以简单地使用面向对象编程的思维&#xff0c;对神经网络结构进行构建和管理。 继承nn.Cell类来定义神经网络&…

【MTK平台】连接蓝牙耳机播放音乐>插入有线耳机>再拔掉有线耳机,声音会从设备中播放一秒,再切到蓝牙耳机

一般这类情况优先考虑Audio的问题 修改如下这个BTA2DP_MUTE_CHECK_DELAY_MS 参数值既可&#xff0c;比如增加delay 把BTA2DP_MUTE_CHECK_DELAY_MS * 4改成 BTA2DP_MUTE_CHECK_DELAY_MS *8 frameworks/base/services/core/java/com/android/server/audio/AudioDeviceBroker.j…

Harris角点检测原理及其在python-opencv的调用

文章目录 原理测试 原理 Harris 角点检测的基本思路如下&#xff1a;考虑一个局部的区域&#xff0c;将其作为一个窗口四处移动&#xff0c;若窗口灰度发生了较大的变化&#xff0c;那么&#xff0c;就认为窗口内存在角点&#xff0c;否则窗口内就不存在角点。 对于图像 I ( …

2024深圳国际钛材料展览会将于11月14日开幕!

2024中国深圳国际钛材料展览会 时间&#xff1a;2024年11月14--16日 地点&#xff1a;深圳国际会展中心 行业盛会 “2024深圳国际钛材料展览会”招展工作已全面启动&#xff0c;活动以助力钛行业的发展为宗旨&#xff0c;将结合当前行业市场的发展状况&#xff0c;以“…

vue滚动到页面底部时加载

handleScroll 函数监听页面滚动事件&#xff0c;当滚动到页面底部时执行代码。 通过这种方式&#xff0c;当用户滚动到页面底部时&#xff0c;将会动态加载更多内容&#xff0c;直到达到设定的总项目数。 const spinning ref(false); // 正在加载Loading... onMounted(() &g…

力扣随机一题 位运算/滑动窗口/数组

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 3191.使二进制数组全部等于1的最少操作次数I【中等】 题目&#xff1a; 给…

bable 【实用教程】

简介 bable 用于将 ES6 的语法编译为 ES5 只关心语法&#xff0c;不关心 API 是否正确。不处理模块化&#xff08;webpack 会处理&#xff09; 搭建开发环境 安装相关的包 npm i babel/cli babel/core babel/preset-env新建文件 .babelrc&#xff0c;内容为 { "presets…

盛水问题解决

力扣上承水问题有11和42题 一、承最多水的容器 解决思路&#xff1a; 要得到存储最大水量&#xff0c;得到max(长度 * 高度)&#xff0c;使用双指针解决这类问题 先判断左指针还是右指针谁大&#xff0c;找最大值&#xff0c;保留最大值&#xff0c;让最小值向中间移动&#…

大模型的一个有前途的应用

大型语言模型 (LLM) 通常被描述为生成人工智能 (GenAI)&#xff0c;因为它们确实具有生成文本的能力。LLM 的第一个流行应用是聊天机器人&#xff0c;其中 ChatGPT 处于领先地位。然后我们将其视野扩展到其他任务&#xff0c;例如语义搜索和检索增强生成 (RAG)。今天&#xff0…