【Java|golang】2409. 统计共同度过的日子数---golang中全局变量带来的坑

news2024/9/22 4:57:00

Alice 和 Bob 计划分别去罗马开会。

给你四个字符串 arriveAlice ,leaveAlice ,arriveBob 和 leaveBob 。Alice 会在日期 arriveAlice 到 leaveAlice 之间在城市里(日期为闭区间),而 Bob 在日期 arriveBob 到 leaveBob 之间在城市里(日期为闭区间)。每个字符串都包含 5 个字符,格式为 “MM-DD” ,对应着一个日期的月和日。

请你返回 Alice和 Bob 同时在罗马的天数。

你可以假设所有日期都在 同一个 自然年,而且 不是 闰年。每个月份的天数分别为:[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 。

示例 1:

输入:arriveAlice = “08-15”, leaveAlice = “08-18”, arriveBob = “08-16”, leaveBob = “08-19”
输出:3
解释:Alice 从 8 月 15 号到 8 月 18 号在罗马。Bob 从 8 月 16 号到 8 月 19 号在罗马,他们同时在罗马的日期为 8 月 16、17 和 18 号。所以答案为 3 。
示例 2:

输入:arriveAlice = “10-01”, leaveAlice = “10-31”, arriveBob = “11-01”, leaveBob = “12-31”
输出:0
解释:Alice 和 Bob 没有同时在罗马的日子,所以我们返回 0 。

提示:

所有日期的格式均为 “MM-DD” 。
Alice 和 Bob 的到达日期都 早于或等于 他们的离开日期。
题目测试用例所给出的日期均为 非闰年 的有效日期。

 int[] array=new int[]{0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    public  int countDaysTogether(String arriveAlice, String leaveAlice, String arriveBob, String leaveBob) {
        for (int i = 1; i < array.length; i++) {
            array[i]+=array[i-1];
        }
        int res=Math.min(getDay(leaveAlice),getDay(leaveBob))-Math.max(getDay(arriveAlice),getDay(arriveBob))+1;
        if (res>0){
            return res;
        }
        return 0;
    }
    public int getDay(String str){
        return array[Integer.parseInt(str.substring(0,2))-1]+
                Integer.parseInt(str.substring(3));
    }

在这里插入图片描述

var array []int =[]int{0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
func countDaysTogether(arriveAlice string, leaveAlice string, arriveBob string, leaveBob string) int {
	for i := 1; i < len(array); i++ {
		array[i]+=array[i-1]
	}
	min1,min2:=getDay(leaveAlice),getDay(leaveBob)
	max1,max2:=getDay(arriveAlice),getDay(arriveBob)
	if min1>min2 {
		min1=min2
	}
	if max2>max1 {
		max1=max2
	}
	res:=min1-max1+1
	if res>0{
		return res
	}
	return 0
}

func getDay(str string) int {
	index,_:=strconv.Atoi(str[0:2])
	v,_:=strconv.Atoi(str[3:])
    return array[index-1]+v
}

在这里插入图片描述

var array []int
func countDaysTogether(arriveAlice string, leaveAlice string, arriveBob string, leaveBob string) int {
	array=[]int{0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
	for i := 1; i < len(array); i++ {
		array[i]+=array[i-1]
	}
	min1,min2:=getDay(leaveAlice),getDay(leaveBob)
	max1,max2:=getDay(arriveAlice),getDay(arriveBob)
	if min1>min2 {
		min1=min2
	}
	if max2>max1 {
		max1=max2
	}
	//fmt.Println(min1)
	//fmt.Println(max1)
	res:=min1-max1+1
	if res>0{
		return res
	}
	return 0
}

func getDay(str string) int {
	index,_:=strconv.Atoi(str[0:2])
	v,_:=strconv.Atoi(str[3:])
    return array[index-1]+v
}

在这里插入图片描述

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

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

相关文章

CTFWIKI-PWN-ret2libc

目录 1.libc 2.plt 和got 3.调用system 4.flat函数 5.libc泄露 例题1 checksec ida 计算偏移量 查找system.plt 查找/bin/sh 1.ida 2.ROPgadget exp 例题2 checksec ida 思路 给出流程图 查看bss是否可以写入 exp 例题3 checksec ida 偏移量 找puts的go…

投屏市场的挑战与发展趋势

投屏的定义 投屏是指将手机、平板、电脑等设备的屏幕内容无线传输到电视、投影仪等大屏幕上的技术&#xff0c;也称为无线投屏、屏幕镜像、屏幕共享等。投屏技术可以实现多屏互动、内容共享、远程协作等功能&#xff0c;为用户提供更丰富的视听体验和更便捷的工作方式。 投屏市…

Jupyter Notebook小知识

目录 1 快捷键1.1 常用快捷键1.2 魔法函数 2 常用快捷键2.1 模式切换2.2 命令模式快捷键2.3 编辑模式快捷键3 Matplotlib绘图 4 小技巧4.1 文件默认目录的查看以及更改4.2 更改主题颜色 5 其它5.1 python中 r, b, u, f 的含义5.2 f/format():格式化操作 6 常见问题6.1 查看模块…

25K测试老鸟6年经验的面试心得,四种公司、四种问题…

这里总结了下自己今年的面试情况 先说一下自己的个人情况&#xff0c;普通二本计算机专业毕业&#xff0c;懂python&#xff0c;会写脚本&#xff0c;会selenium&#xff0c;会性能。趁着金三银四跳槽季&#xff0c;面试字节跳动测试岗技术面都已经过了&#xff0c;本来以为是…

基于OC端的Bridge-API组件化应用

前言 在移动应用开发中&#xff0c;组件化可以提高代码的模块化和重用性&#xff0c;降低耦合度。当下大部分APP都至少包含一到两种Hybrid框架&#xff0c;H5基本是必要的&#xff0c;还可能叠加React Natvie、Weex或Flutter。 对于Hybird来说&#xff0c;Native的很多能力是…

Ae:自动定向

Ae 菜单&#xff1a;图层/变换/自动定向 Auto-Orient 快捷键&#xff1a;Ctrl Alt O 自动定向 Auto-Orient是 Ae 图层中的一个附加的、隐藏实现&#xff08;不会在时间轴面板上更改属性的值&#xff09;的功能&#xff0c;它可以使得图层自动旋转或改变方向以朝向指定的运动路…

HIVE相关操作

HIVE有两种启动方式 方式1&#xff1a; bin/hive 即Hive的Shell客户端&#xff0c;可以直接写SQL方式2&#xff1a; bin/hive --service hiveserver2 后台执行脚本&#xff1a;nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 & bin/hiv…

Vue.js列表渲染指令v-for

目录 一、原理概述 二、基本用法 &#xff08;1&#xff09;v-for循环普通数组 &#xff08;2&#xff09;v-for循环对象 &#xff08;3&#xff09;v-for循环对象数组 &#xff08;4&#xff09;v-for迭代整数 一、原理概述 v-for指令时在模板编译的代码生成阶段实现的…

6.java程序员必知必会类库之pdf处理库

前言 Pdf作为我们办公文件中的一种常用文件格式&#xff0c;很多业务中会涉及到一个功能&#xff0c;是将系统中的某些数据&#xff0c;按照要求的格式生成Pdf文件。比如常见的征信报告&#xff0c;合同文件等等&#xff0c;为此通过java代码&#xff0c;处理PDF格式的文件&am…

Vulnhub项目:Earth

靶机地址&#xff1a;The Planets: Earth ~ VulnHub 渗透过程&#xff1a; 首先查看靶机描述&#xff0c;需要获取2个flag 老样子&#xff0c;确定靶机ip&#xff0c;具体的就不详细写了&#xff0c;看图即可 探测靶机开放端口 如果不进行dns绑定&#xff0c;就会出现下面的…

带你玩转状态机(论点:概念、相关图示、示例代码、适用场景、相关文档)

概念 状态机&#xff08;State Machine&#xff09;是一种用于描述系统在不同状态下的行为及状态之间转换的数学模型。状态机主要由三个部分组成&#xff1a;状态&#xff08;State&#xff09;、事件&#xff08;Event&#xff09;和转换&#xff08;Transition&#xff09;。…

Vue2-黑马(九)

0目录&#xff1a; &#xff08;1&#xff09;router-动态菜单 &#xff08;2&#xff09;vuex-入门 &#xff08;3&#xff09;vuex-mapState &#xff08;1&#xff09;router-动态菜单 我们点击按钮跳转到主页面&#xff0c;主页在制作动态菜单&#xff0c;路由的跳转方…

【PWN】刷题——CTFHub之 简单的 ret2text

萌新第一阶段自然是了解做题的套路、流程&#xff0c;简单题要多做滴 目录 前言 一、checksec查看 二、IDA反汇编 三、exp编写 前言 经典的ret2text流程 一、checksec查看 64位程序&#xff0c;什么保护都没有&#xff0c;No canary found——可以栈溢出控制返回 二、IDA反汇…

SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解、如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁

文章目录 1、步骤2、具体过程1、引入pom依赖2、修改配置文件3、单元测试4、测试结果 3、redis运行情况4、项目中实际应用5、加锁解决缓存击穿问题代码一&#xff08;存在问题&#xff09;代码二&#xff08;问题解决&#xff09; 6、新问题7、分布式锁 1、步骤 前提条件&#…

FFmpeg 编译静态库

1. 使用工具 1.1 FFmpeg 官网: 1.2 FFmpeg macOS 官方安装教程: 1.3 Homebreaw 安装网站: 2. Homebreaw 介绍 2.1 简称 brew&#xff0c;在 Mac 平台终端上管理软件包&#xff0c;安装&#xff0c;更新&#xff0c;卸载等软件 2.2 安装 brew&#xff0c;终端执行指令(内部安装…

HTTP协议详解(一)

目录 1.什么是HTTP协议? 2.HTTP的协议格式 使用fiddler抓包工具 理解代理 查看请求内容 3.HTTP请求(Request) 认识URL URL encode 认识method GET方法 POST方法 经典面试题:POST和GET之间的典型区别 其它方法 认识请求 "报头" (header) Host Conte…

Elasticsearch:为日志分析设置安全的 Elasticsearch 管道

在我之前的许多文章中&#xff0c;我已经详细地描述了如何配置如下的管道&#xff1a; 如果你想了解更多&#xff0c;请详细阅读文章&#xff1a; Logstash&#xff1a;Logstash 入门教程 &#xff08;二&#xff09; Elastic&#xff1a;运用 Docker 安装 Elastic Stack 并采…

企业在实施采购管理时需要注意哪些问题?

采购管理是指企业为了获得所需的物资和服务等&#xff0c;通过筛选供应商、谈判合同、执行采购计划等一系列过程来实现目标的管理活动。在实施过程中&#xff0c;采购管理需要注意以下几个问题&#xff1a; 1、采购策略的选择 采购策略的选择是采购管理中非常关键的环节。不同…

分享5款win10小工具,让办公学习井井有条

好用的小工具能让办公学习变得更简单便捷&#xff0c;这里推荐几款实用的Win10小工具。 桌面小工具——Win10 Widgets Win10 Widgets是一款实用的桌面小工具软件&#xff0c;可以让你在桌面上显示各种系统信息。你可以使用Win10 Widgets来查看电源、硬盘、CPU、内存、网络、时…

数据结构_第十三关(1):简单排序算法

【本关目标】 排序的概念常见排序的算法思想和实现排序算法的复杂度以及稳定性分析 目录 【本关目标】 1.排序的概念 2.常见排序的算法思想和实现&#xff08;代码默认都是从小到大排序&#xff09; 2.1插入排序 1&#xff09;直接插入排序 2&#xff09;希尔排序 2.2选…