【每日一题】【12.29】 - 【12.31】年终收尾

🔥博客主页: A_SHOWY
🎥系列专栏:力扣刷题总结录 数据结构  云计算  数字图像处理  力扣每日一题_

这三天的题目难度相对较小,基本都为模拟题,但是第二三的题目年份贡献类型很有代表性。2023年最后三天年终收尾,正好是周日,下次的每日一题更新新的一年新的一周开始。

【12.29】2706.购买两块巧克力 

2706. 购买两块巧克力icon-default.png?t=N7T8https://leetcode.cn/problems/buy-two-chocolates/ 

可以说是睡的最早的一集,就是一个排序后一次遍历的问题,3分钟秒了 

class Solution {
public:int buyChoco(vector<int>& prices, int money) {sort(prices.begin(),prices.end());int ans = 0;for(int i = 0 ; i < 2;i ++){ans += prices[i];}if(ans <= money) return (money - ans);else return money;}
};

【12.30】 1185.一周中的第几天

1185. 一周中的第几天icon-default.png?t=N7T8https://leetcode.cn/problems/day-of-the-week/

 

虽然是一个简单题,但是并不轻松,是一道稍微复杂的模拟题目,首先要熟悉判断闰年的条件,同时考虑清楚年、月、日的贡献和当年如果是闰年需要多共贡献一天。 

首先,我们应该找到一个 baseline,然后将所给的日期,基于这个 baseline 计算偏移量。因为题目所给的日期是在 1971 到 2100 年之间的有效日期,所以我们可以选取1970年12月31日为baseline,这一天是星期四,基于这个日期计算偏移量。

class Solution {
public:string dayOfTheWeek(int day, int month, int year) {vector<string> week = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};vector<int> monthdays = {31,28,31,30,31,30,31,31,30,31,30,};//年份的贡献int days = 365*(year - 1 - 1970);for(int i = 1971; i < year;i++){if(i % 400 == 0 || (i % 4 == 0 &&i % 100 != 0)) days += 1;}//判断是否闰年if(month > 2 && (year % 400 == 0 || (year % 4 == 0 &&year % 100 != 0))) days +=1;//月份贡献for(int i = 0; i < month-1; i++){days += monthdays[i];}//天贡献days += day;return week[(days + 3) % 7];}
};

 判断闰年的条件:能被400整除或者能被4整除但不能被400整除。

i % 400 == 0 || (i % 4 == 0 &&i % 100 != 0)

在判断年的贡献的时候year要先减去1,因为不算今年的,今年的在后月份和天数的时候另算

int days = 365*(year - 1 - 1970);

判断完年份以后,要判断当年是不是闰年且大于2月份,如果是闰年加1,最后返回的时候由于1970年12月31日是星期4,可以假设1971年1月1日是星期5,是days是1,对应Tuesday而对应应该是Friday,所以加三再除以7取模。

   return week[(days + 3) % 7];

【12.31】1154.一年中的第几天 

1154. 一年中的第几天icon-default.png?t=N7T8https://leetcode.cn/problems/day-of-the-year/

 

也是模拟题,有了前一天的铺垫,今天的题目就显得简单的多了,也是通过年月日计算,但是这道题需要掌握复制子串的语句substr。

class Solution {
public:int dayOfYear(string date) {//复制子串int year = stoi(date.substr(0,4));int month = stoi(date.substr(5,2));int day = stoi(date.substr(8,2));vector<int> monthdays = {31,28,31,30,31,30,31,31,30,31,30};int days = 0;for(int i = 0; i < month - 1; i++){days += monthdays[i];}if(year % 400 == 0 ||(year % 4 == 0 && year % 100 != 0)){if(month > 2) days += 1;}days += day;return days;}
};

通过复制子串的操作求出年月日 ,第一个参数表示从几开始,第二个参数表示长度

 int year = stoi(date.substr(0,4));int month = stoi(date.substr(5,2));int day = stoi(date.substr(8,2));

同样通过求月份贡献,判断是否闰年,再加上日的贡献返回即可。

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

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

相关文章

I/O多路复用

I/O就是对缓冲区的操作 I/O多路复用使得程序能同时监听多个文件描述符能够提高程序的性能 I/O多路复用是一种有效的处理多个I/O事件的机制&#xff0c;允许一个单独的进程或线程来监视多个文件描述符&#xff08;sockets、文件、设备等&#xff09;&#xff0c;并在其中任何一个…

Python编程技巧 – format格式化文本

Python编程技巧 – format格式化文本 Python Programming Essentials - Using format() to format texts By JacksonML 本文简要介绍Python语言的format()方法&#xff08;也即函数&#xff09;相关实例和技巧&#xff0c;希望对读者有所帮助。 1. format定义和方法 forma…

如何处理并下载Sentinel-5数据

SENTINEL-5是欧洲空间局&#xff08;European Space Agency&#xff0c;ESA&#xff09;Copernicus计划中的一颗地球观测卫星。SENTINEL-5的主要任务是监测大气成分&#xff0c;特别是臭氧、氮二氧化物、二氧化硫、甲烷和其他气体的分布。这些观测对于了解大气污染、气候变化和…

Wireshark-win64

前言 Wireshark是使用最广泛的一款「开源抓包软件」&#xff0c;常用来检测网络问题、攻击溯源、或者分析底层通信机制。 它使用WinPCAP作为接口&#xff0c;直接与网卡进行数据报文交换。 Wireshark-win64 前言1 下载地址2 安装 1 下载地址 https://download.csdn.net/down…

k8s搭建(五、k8s可视化管理工具Dashboard配置)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Vue: 事件修饰符, 键盘事件, 鼠标事件,计算属性

目录 事件修饰符 阻止默认事件 阻止冒泡 允许触发一次 捕获模式 self passive 键盘事件 keyup & keydown 按键别名 注意tab 注意系统按键 自定义按键 鼠标事件 简介 鼠标焦点事件 计算属性 差值语法实现 methods实现 computed实现 get() set() 总…

2023-12-18 LeetCode每日一题(寻找峰值)

2023-12-18每日一题 一、题目编号 162. 寻找峰值二、题目链接 点击跳转到题目位置 三、题目描述 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返…

信号与线性系统翻转课堂笔记19——连续/离散系统的零极点与稳定性

信号与线性系统翻转课堂笔记19——连续/离散系统的零极点与稳定性 The Flipped Classroom19 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、要点 &#xff08;1&#x…

解决IDEA上传Git 带有本地编译文件问题

IDEA 版本控制推送代码问题 IDEA开发过程中&#xff0c;使用版本控制Git、Svn或其他版本管理工具提交代码到远程经常遇到一些不重要的文件。这些文件是本地的文件&#xff0c;不需要上传&#xff0c;这个时候就需要通过设置&#xff0c;来改变。 问题解决 在IDEA通过设置&…

旁挂二层隧道转发小实验

WLAN配置 旁挂二层隧道转发 1.基础配置&#xff1a; SW1: system-view vlan batch 100 to 101interface GigabitEthernet 0/0/1 port link-type trunk port trunk pvid vlan 100 //打上管理VLAN的100标签 port trunk allow-pass vlan 100 101interface GigabitEthernet 0/…

Apollo自动驾驶:从概念到现实的里程碑

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 ChatGPT体验地址 文章目录 前言1. Apollo Client2. Apollo Server3. Apollo Federation4. Apollo Tracing5. Apollo Codegen6. Apollo Link7. 其他工具和框架结论 &#x1f680;&#x1f…

Windows10系统的音频不可用,使用疑难解答后提示【 一个或多个音频服务未运行】

一、问题描述 打开电脑&#xff0c;发现电脑右下角的音频图标显示为X&#xff08;即不可用&#xff0c;无法播放声音&#xff09;&#xff0c;使用音频自带的【声音问题疑难解答】&#xff08;选中音频图标&#xff0c;点击鼠标右键&#xff0c;然后选择“声音问题疑难解答(T)”…

Git 常用命令知识笔记

Git 仓库数据结构 Git 仓库由一个个的 commit 组成某些 commit 上会有一些 branch 指向它们&#xff0c;这些 branch 的本质是引用有一个特殊的引用叫做 HEAD&#xff0c;它始终指向当前的位置&#xff0c;这个位置可以是 commit&#xff0c;也可以是 branch staging area 暂存…

基于时空的Ramsar湿地自动淹没映射利用Google Earth Engine

题目:Spatiotemporal‑based automated inundation mapping of Ramsar wetlands using Google Earth Engine 期刊:Scientific Reports 第一作者:Manish KumarGoyal 发表单位:University of Nebraska 发表日期:2023年 1. 摘要 研究背景:湿地是生态系统中最关键的组成…

ctfshow 新手必刷菜狗杯 谜之栅栏题解记录

知识点&#xff1a;图片比较 拿到之后&#xff0c;有两个图片&#xff0c;直观看不出什么&#xff0c;尝试用工具比较。 用010editor打开其中一个&#xff0c;010editor的工具里面就有比较文件选项&#xff0c;比较两个文件&#xff0c;发现有一处不同。题目说栅栏&#xff0c…

【Vulnhub 靶场】【Looz: 1】【简单】【20210802】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/looz-1,732/ 靶场下载&#xff1a;https://download.vulnhub.com/looz/Looz.zip 靶场难度&#xff1a;简单 发布日期&#xff1a;2021年08月02日 文件大小&#xff1a;2.1 GB 靶场作者&#xff1a;mhz_cyber &…

八个理由:从java8升级到Java17

目录 前言 1. 局部变量类型推断 2.switch表达式 3.文本块 4.Records 5.模式匹配instanceof 6. 密封类 7. HttpClient 8.性能和内存管理能力提高 前言 从Java 8 到 Java 20&#xff0c;Java 已经走过了漫长的道路&#xff0c;自 Java 8 以来&#xff0c;Java 生态系统…

kivy开发一个登陆界面

Kivy Kivy是一个用于开发跨平台移动应用&#xff08;如Android和iOS&#xff09;以及桌面应用&#xff08;如Windows、Linux和macOS&#xff09;的Python框架。它采用开源许可证&#xff08;MIT许可证&#xff09;&#xff0c;提供了丰富的图形界面组件和工具&#xff0c;以便…

链表:约瑟夫环

#include<iostream> using namespace std; struct Circle //创建结构体Circle {int index; //编号Circle* next; //指针变量next指向一个节点 }; Circle* CreateList(int n) //创建链表 {Circle* head, * p; //head为头指针&#xff0c;p为当前指针head p new Circle;…

C#,入门教程(04)——Visual Studio 2022 数据编程实例:随机数与组合

上一篇&#xff1a; C#&#xff0c;入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果https://blog.csdn.net/beijinghorn/article/details/123478581 C#&#xff0c;入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net…