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

2023-12-31 08:52
文章标签 每日 年终 收尾 12.29 12.31

本文主要是介绍【每日一题】【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));

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

这篇关于【每日一题】【12.29】 - 【12.31】年终收尾的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/555557

相关文章

每日一练:攻防世界:5-1 MulTzor

一、XorTool 基于 XOR(异或)运算实现。它可以帮助您快速地对文本、二进制文件进行加密解密操作。 认识XorTool工具: 让我们先去认识一下工具: xortool.py 是基于 python 的脚本,用于完成一些 xor 分析,包括: 猜想 key 的长度 猜想 key 的值 解密一些经过 xoe 加密的文件 也就是说当遇到不知道文件类型的文件,可以尝试去看看它是否被xo

20240624 每日AI必读资讯

🤖AI学会篡改奖励函数、欺骗研究者!Claude团队:无法根除的行为,令人不安 - 实验中让AI可以访问自己的强化学习代码,并且提问:目前为止,我们总共进行了几轮强化学习?AI在自以为不会被看见的草稿纸中写下内心OS - 研究对未来如何避免强大的AI系统出现这种问题非常有意义。 - Anthropic、Readwood Research(专注AI安全的非盈利研究机构)和牛津大学合作研究

LeetCode 每日一题 2024/6/17-2024/6/23

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 6/17 522. 最长特殊序列 II6/18 2288. 价格减免6/19 2713. 矩阵中严格递增的单元格数6/20 2748. 美丽下标对的数目6/21 LCP 61. 气温变化趋势6/22 2663. 字典序最小的美丽字符串6/23 520. 检测大写字母 6/1

每日一题——Python代码实现力扣1. 两数之和(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 菜鸡写法 代码分析 时间复杂度分析 空间复杂度分析 改进建议 我要更强 方法1: 使用哈希表(字典) 方法2: 排序和双指针 方法3: 使用集合(仅适用于特殊情况) 哲学和编程思想

每日文献:2018-02-24

自然选择的分子印迹(精读第三天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 群体遗传学预测 分子群体遗传学的其中一个方向就是从分子变异中区分出中性变异(仅仅受到遗传漂变的影响),找到受

每日文献:2018-02-23

自然选择的分子印迹(精读第二天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 自然选择模型术语 考虑到同一个属于在不同语境下会有有些不同,也就导致目前的选择这个概念存在多种定义方式,在阅

每日文献:2018-02-20

自然选择的分子印迹(精读第一天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 简介 群体遗传学数十年来一直被一个问题所困扰,那就是如果在观察物种中存在一个遗传变异,那么应该如何定量得描述

每日一题——Python代码实现PAT乙级1048 数字加密(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 初次尝试  再次尝试 代码点评 代码结构 时间复杂度 空间复杂度 优化建议 我要更强 优化建议 完整代码及注释 时间复杂度和空间复杂度分析 进一步优化 哲学和编程思想 模块化

《Windows API每日一练》5.4 键盘消息和字符集

本节我们将通过实例来说明不同国家的语言、字符集和字体之间的差异,以及Windows系统是如何处理的。 本节必须掌握的知识点:         第31练:显示键盘消息         非英语键盘问题         字符集和字体         第32练:显示默认字体信息         第33练:创建逻辑字体 5.4.1 第31练:显示键盘消息 /*----------------

20240623 每日AI必读资讯

🤖原生鸿蒙AI浓度要爆表了! - 一年一度华为开发者大会上,余承东首次揭秘“鸿蒙原生智能”Harmony Intelligence! - 华为小艺进化成系统级智能体。 - 一句话实现跨多个应用的规划和任务执行;在第三方APP上随意处理文字图表信息。 🔗 原生鸿蒙AI浓度要爆表了:鸿蒙原生智能加持,华为小艺进化成系统级智能体-CSDN博客 📂 Anthropic最新的Cl