当前位置: 首页 > news >正文

大型网站系统架构品牌建设与市场推广

大型网站系统架构,品牌建设与市场推广,推广是什么意思,定制家具网博主的解法过于冗长#xff0c;是一直对着不同的案例debug修改出来的#xff0c;不建议学习。虽然提交成功了#xff0c;但是自己最后都不知道写的是啥了哈哈哈。 package keepcoding.leetcode.leetcode2409; /*Alice 和 Bob 计划分别去罗马开会。给你四个字符串 arriveA… 博主的解法过于冗长是一直对着不同的案例debug修改出来的不建议学习。虽然提交成功了但是自己最后都不知道写的是啥了哈哈哈。 package keepcoding.leetcode.leetcode2409; /*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]*/ public class Result01 {public static void main(String[] args) {int days countDaysTogether(08-12,08-26,08-26,10-25);System.out.println(days);}/*输入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 。*/public static int countDaysTogether(String arriveAlice, String leaveAlice, String arriveBob, String leaveBob) {String[] arriveAliceTimeArray arriveAlice.split(-,2);String[] leaveAliceTimeArray leaveAlice.split(-,2);String[] arriveBobTimeArray arriveBob.split(-,2);String[] leaveBobTimeArray leaveBob.split(-,2);int aliceArriveMonth Integer.valueOf(arriveAliceTimeArray[0]);int aliceLeaveMonth Integer.valueOf(leaveAliceTimeArray[0]);int aliceArriveDay Integer.valueOf(arriveAliceTimeArray[1]);int aliceLeaveDay Integer.valueOf(leaveAliceTimeArray[1]);int bobArriveMonth Integer.valueOf(arriveBobTimeArray[0]);int bobLeaveMonth Integer.valueOf(leaveBobTimeArray[0]);int bobArriveDay Integer.valueOf(arriveBobTimeArray[1]);int bobLeaveDay Integer.valueOf(leaveBobTimeArray[1]);if (aliceArriveDaybobArriveDay aliceArriveMonthbobArriveMonth aliceLeaveDaybobLeaveDay aliceLeaveMonthbobLeaveMonth){if (aliceArriveDay1 aliceLeaveMonth12){return 365;}else if (aliceArriveDay28 aliceArriveMonth2 aliceLeaveMonth3){return 2;}}//alice和bob同一个月到if (aliceArriveMonth bobArriveMonth) {//同一个月走if (aliceLeaveMonthbobLeaveMonth){if (aliceArriveDay bobLeaveDay || bobArriveDay aliceLeaveDay) {//alice/bob到的时候 bob/alice已经走了 共同度过的日子为0return 0;} else {//alice先到if (aliceArriveDay bobArriveDay) {return aliceLeaveDay bobLeaveDay ? (aliceLeaveDay-bobArriveDay)1 : (bobLeaveDay-bobArriveDay)1;//alice后到} else {return aliceLeaveDay bobLeaveDay ? (aliceLeaveDay-aliceArriveDay)1 : (bobLeaveDay-aliceArriveDay)1;}}//alice走的月份小于bob 即alice先走}else if (aliceLeaveMonthbobLeaveMonth){if (aliceLeaveDaybobArriveDay){return 1;}else {int sumDays aliceLeaveDay;for (int i aliceArriveMonth1; i aliceLeaveMonth; i) {sumDays getMonthDays(i);}sumDays aliceArriveDaybobArriveDay ? getMonthDays(aliceArriveMonth)-aliceArriveDay : getMonthDays(bobArriveMonth)-bobArriveDay;return sumDays1;}//alice走的月份大于bob 即bob先走}else {int sumDays 0;if (bobArriveMonthbobLeaveMonth){sumDays bobLeaveDay - bobArriveDay;}else {sumDays bobLeaveDay;for (int i bobArriveMonth1; i bobLeaveMonth ; i) {sumDays getMonthDays(i);}sumDays aliceArriveDaybobArriveDay ? getMonthDays(aliceArriveMonth)-aliceArriveDay : getMonthDays(bobArriveMonth)-bobArriveDay;}return sumDays1;}//alice月份先到} else if (aliceArriveMonth bobArriveMonth) {if (aliceLeaveMonth bobArriveMonth) {//alice在bob到之前就走了return 0;//alice 走 的那个月 bob 到} else if (aliceLeaveMonth bobArriveMonth) {if(aliceLeaveDaybobLeaveDay){return bobArriveDay aliceLeaveDay ? (aliceLeaveDay-bobArriveDay)1 : 0;}else {return bobArriveDay aliceLeaveDay ? (bobLeaveDay-bobArriveDay)1 : 0;}//alice在bob到的月份之后的月份才走} else {//bob走的月份小于aliceif (bobLeaveMonth aliceLeaveMonth) {int sumDays getMonthDays(bobArriveMonth) - bobArriveDay;for (int i bobArriveMonth 1; i bobLeaveMonth; i) {sumDays getMonthDays(i);}sumDays bobLeaveDay;return sumDays1;//bob走的月份大于alice} else if (bobLeaveMonth aliceLeaveMonth) {int sumDays getMonthDays(bobArriveMonth) - bobArriveDay;for (int i bobArriveMonth 1; i aliceLeaveMonth; i) {sumDays getMonthDays(i);}sumDays aliceLeaveDay;return sumDays1;//bob跟alice一个月走}else {int sumDays getMonthDays(bobArriveMonth) - bobArriveDay;for (int i bobArriveMonth 1; i aliceLeaveMonth; i) {sumDays getMonthDays(i);}sumDays Math.min(aliceLeaveDay,bobLeaveDay);return sumDays1;}}//bob月份先到} else {if (bobLeaveMonth aliceArriveMonth) {//bob在alice到之前就走了return 0;//bob 走 的那个月 alice 到} else if (bobLeaveMonth aliceArriveMonth) {return aliceArriveDay bobLeaveDay ? (bobLeaveDay-aliceArriveDay)1 : 0;//bob在alice到的月份之后的月份才走} else {//alice走的月份小于bobif (aliceLeaveMonth bobLeaveMonth) {int sumDays getMonthDays(aliceArriveMonth) - aliceArriveDay;for (int i aliceArriveMonth 1; i aliceLeaveMonth; i) {sumDays getMonthDays(i);}sumDays aliceLeaveDay;return sumDays1;//alice走的月份大于bob} else if (aliceLeaveMonth bobLeaveMonth) {int sumDays getMonthDays(aliceArriveMonth) - aliceArriveDay;for (int i aliceArriveMonth 1; i bobLeaveMonth; i) {sumDays getMonthDays(i);}sumDays bobLeaveDay;return sumDays1;//alice跟bob一个月走}else {int sumDays getMonthDays(aliceArriveMonth) - aliceArriveDay;for (int i aliceArriveMonth 1; i aliceLeaveMonth; i) {sumDays getMonthDays(i);}sumDays Math.min(aliceLeaveDay,bobLeaveDay);return sumDays1;}}}}//获取月份对应的天数public static int getMonthDays(int i){switch (i){case 1: return 31;case 2: return 28;case 3: return 31;case 4: return 30;case 5: return 31;case 6: return 30;case 7: return 31;case 8: return 31;case 9: return 30;case 10: return 31;case 11: return 30;case 12: return 31;default: return 0;}} } 官方解较为巧妙大家可以学习 package keepcoding.leetcode.leetcode2409; /* 我们可以设计一个函数 calculateDayOfYear 来计算输入中的每个日子在一年中是第几天。 计算输入中的每个日子在一年中是第几天时可以利用前缀和数组来降低每次计算的复杂度。 知道每个日子是一年中的第几天后可以先通过比较算出两人到达日子的最大值离开日子的最小值然后利用减法计算重合的日子 */public class Result02 {public static void main(String[] args) {int days countDaysTogether(10-01,11-01,11-01,12-31);System.out.println(days);}public static int countDaysTogether(String arriveAlice, String leaveAlice, String arriveBob, String leaveBob) {//将每个月份的天数存入数组int[] datesOfMonths {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//累加数组——计算每个月在这一年已经过了多少天int[] prefixSum new int[13];for (int i 0; i 12; i) {//i1 是因为要在数组1-12的位置上一一对应的存入月份累加的天数 eg.一月这一年过了31天 二月过了3128 三月312831 ...prefixSum[i 1] prefixSum[i] datesOfMonths[i];}//计算alice到的天数是一年的第几天int arriveAliceDay calculateDayOfYear(arriveAlice, prefixSum);//计算alice走的天数是一年的第几天int leaveAliceDay calculateDayOfYear(leaveAlice, prefixSum);//计算bob到的天数是一年的第几天int arriveBobDay calculateDayOfYear(arriveBob, prefixSum);//计算bob走的天数是一年的第几天int leaveBobDay calculateDayOfYear(leaveBob, prefixSum);//用Math.min(leaveAliceDay, leaveBobDay)计算谁先走的Math.max(arriveAliceDay, arriveBobDay)计算谁后到的//如果存在共处的时间先走的-后到的即为共处的天数//如果先走的-后到的 0 证明没有相遇共处的时间——return 0// 1 是因为 如果alice走的那天bob到 根据题意这也算共处了一天 eg .alice 10-01到 10-31走 bob 10-31到 11-3走 ;根据先走的-后到的计算0但是有共处的一天所以1return Math.max(0, Math.min(leaveAliceDay, leaveBobDay) - Math.max(arriveAliceDay, arriveBobDay) 1);}//计算是哪一天到的public static int calculateDayOfYear(String day, int[] prefixSum) {//String类的substring()方法 ——截取字符串 https://blog.csdn.net/Crezfikbd/article/details/119708978int month Integer.parseInt(day.substring(0, 2));int date Integer.parseInt(day.substring(3));return prefixSum[month - 1] date;//到的这个月的前一个月总共过了多少天 再加上这个月到的日期 即为这一年的第几天} } 知道思路后自己又手敲了一遍 package keepcoding.leetcode.leetcode2409;public class DoItAgain {public static void main(String[] args) {int days countTogetherDays(10-01,11-01,11-01,12-31);System.out.println(days);}//计算哪天到public static int countTogetherDays(String aliceArrive,String aliceLeave,String bobArrive,String bobLeave){int[] monthDays {31,28,31,30,31,30,31,31,30,31,30,31};int[] preMonthSum new int[13];for (int i 0; i monthDays.length; i) {preMonthSum[i1] preMonthSum[i] monthDays[i];}//计算alice一年中的第几天到int aComDay countDay(aliceArrive,preMonthSum);//计算alice一年中的第几天走int aGoDay countDay(aliceLeave,preMonthSum);//计算bob一年中的第几天到int bComDay countDay(bobArrive,preMonthSum);//计算bob一年中的第几天走int bGoDay countDay(bobLeave,preMonthSum);if (bComDayaGoDay || aComDaybGoDay){//没有相遇return 0;}else {//先走的-后到的日期return Math.min(aGoDay,bGoDay) - Math.max(aComDay,bComDay) 1;}}//计算各个时间点是这一年的第多少天public static int countDay(String s,int[] preMonthSum){//转化截取的字符串——得到到达的月份、日期int month Integer.parseInt(s.substring(0,2));int day Integer.parseInt(s.substring(3));//根据累加的数组结合当月到达的日期 计算到达的天数return preMonthSum[month-1]day;} }
http://www.hkea.cn/news/14333970/

相关文章:

  • 婚庆公司网站建设doc群晖自行安装wordpress
  • 东莞手机手机端网站建设百度网站建设及推广
  • 宁波网站设计公司有几家蚁坊舆情
  • 如何制定网站icon图标官方网站哪家做的最好
  • 戴尔公司网站建设成功的关键长宁广州网站建设
  • 做海报素材的网站汤原建设局网站
  • pc端宣传网站开发电商平台设计包括哪些内容
  • 中学网站建设工作实施方案教务系统学生登录入口
  • 商业网站可以选择.org域名吗杭州的设计网站大全
  • 服装购物网站策划书wordpress文章怎么消失
  • 云南中建西部建设有限公司网站修改wordpress的权限设置
  • 哪些大学网站做的比较好装修公司名字大全
  • 新手做网站用什么软件primitive technology wordpress
  • 平乡县网站建设平台缙云网站建设
  • 南通通明建设监理有限公司网站公司使用威联通nas做网站存储
  • 网站建设课seo公司哪家
  • 作品集展示的网站源码烟台专业做网站公司有哪些
  • 爱网站查询建设一个公司网站多少钱
  • 聊城网站公司酒店vi设计公司
  • 盐城网站建设制作工作室百度怎么制作网站教程
  • 网站群怎么做电商网站怎样做优化才最合理
  • 专门做网站搜索优化的公司wordpress 收费主题下载
  • 兰州网站建设q.479185700棒wordpress 建立后台默认用户
  • 网站建设公司的市场营销方案漯河住房建设局网站
  • 自己做网络主播的网站中国建设银行招聘
  • 阜阳市建设工程网站做好的网站怎么发布
  • 时代网站管理系统怎么做网站路北网站制作
  • jquery 单击input输入框弹出选择框多用于人才类网站自己想做一个网站怎么做的
  • 东营有做网站的公司商业综合体
  • 朝阳制作网站我想做网站