Java 小Q 世界上最遥远的距离 解法二

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class ELE5 {
	
	static SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");		//格式化时间
	
	public static void main(String[] args) throws Throwable {
		Scanner input = new Scanner(System.in);
		Date date = format.parse("2013/03/24");			//使用格式化时间,创建2013/03/24的Date日期对象
		long n = input.nextLong();					//输入天数
		System.out.print(getDate(date, n)+" "+getDate(date, -n));		//输出2013/03/24前n天和后n天的日期
		input.close();
	}
	
	public static String getDate(Date date, long day){
		long time = date.getTime();						//得到2013/03/24的unix时间戳,即1970年1月1日到2013/03/24的毫秒数
		long targetTime = time + day*24*60*60*1000;		//得到目标日期的unix时间戳
		Date targetDate = new Date(targetTime);			//使用目标日期的unix时间戳创建Date对象
		return format.format(targetDate);				//使用 格式化日期对象,将Date转化为String对象
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最小循环子数组是指在一个循环数组中,找到一个连续子数组,使该子数组的和最小。对于解决这个问,可以使用Java编程语言来实现。 首先,我们需要定义一个函数来计算数组的和。该函数的输入参数为一个整数数组,返回值为数组的总和。下面是该函数的Java代码实现: ```java public int getSum(int[] nums) { int sum = 0; for (int num : nums) { sum += num; } return sum; } ``` 接下来,我们可以编写一个函数来找到最小循环子数组的和。该函数的输入参数为一个整数数组,返回值为最小循环子数组的和。下面是该函数的Java代码实现: ```java public int findMinSubarraySum(int[] nums) { int sum = getSum(nums); int currentSum = 0; int minSum = sum; for (int i = 0; i < nums.length; i++) { currentSum += nums[i]; if (currentSum > sum) { currentSum = nums[i]; } minSum = Math.min(minSum, currentSum); } return minSum; } ``` 在这段代码中,我们使用了一个变量currentSum来记录当前子数组的和,另一个变量minSum来记录最小循环子数组的和。在遍历数组过程中,如果当前子数组的和大于整个数组的总和,就将currentSum重置为当前元素的值。每次更新minSum时,都使用Math.min函数来比较两个和的大小,并将较小的值赋给minSum。 最后,我们可以调用findMinSubarraySum函数来找到最小循环子数组的和。下面是一个例子: ```java int[] nums = {4, 3, -2, -1, -3, 4, 5}; int minSubarraySum = findMinSubarraySum(nums); System.out.println("最小循环子数组的和为:" + minSubarraySum); ``` 以上就是最小循环子数组问Java解法,通过以上的代码实现,可以计算出最小循环子数组的和。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值