牛客春招刷题训练营 算法 Java 3月27日 杨辉三角的变形 计算日期到天数转换 而后单调

目录

#牛客春招刷题训练营# + 【春招神助攻】牛客刷题营开启:每日一题攒牛币,大厂offer不是梦!_牛客网

题目地址

1.杨辉三角的变形

2.计算日期到天数转换

3.而后单调


#牛客春招刷题训练营# + 【春招神助攻】牛客刷题营开启:每日一题攒牛币,大厂offer不是梦!_牛客网

题目地址

杨辉三角的变形_牛客题霸_牛客网

计算日期到天数转换_牛客题霸_牛客网

而后单调_牛客题霸_牛客网

1.杨辉三角的变形

我们打个表就不难发现规律

下面是我打的表

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        long n=in.nextLong();
        if(n==1||n==2){
            System.out.print("-1");
        }
        else if((n+1)%2==0){
            System.out.println("2");
        }else if(n%4==0){
            System.out.println("3");
        }else if((n-2)%4==0){
            System.out.println("4");
        }
    }
}

2.计算日期到天数转换

我这边直接调用的Calendar 类

首先获得 Calendar 单例对象

然后用 set 方法挂载属性值

用 get 方法获取时间 传入的属性是字符串(成员变量)

import java.time.*;
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int year = Integer.parseInt(in.next());    
        int month = Integer.parseInt(in.next()); ;     
        int day = Integer.parseInt(in.next());    
        
        Calendar calendar = Calendar.getInstance(); 
        calendar.set(year,  month - 1, day); 
        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR); 
        
        System.out.println(dayOfYear);
    }
}

3.而后单调

首先严格递增的序列不行

其次有两个相邻元素一样的不行

仅供参考

import java.io.*;
import java.time.*;
import java.util.*;

public class Main {

	static Scanner sc = new Scanner(System.in);
	static String[] ss;
	static String s;

	public static void main(String[] args) throws IOException {
        int t=sc.nextInt();
		while (t-- > 0) {
			solve();
		}
	}

	public static void solve() throws IOException {

		int n  = sc.nextInt();
		int m  = sc.nextInt();
		int nums [] = new int[n];

		HashSet<Integer> set = new HashSet<>();
		Integer[] tmp = new Integer[n];

		for (int i = 0; i < n; i++) {
			nums[i] = sc.nextInt();
			set.add(nums[i]);
			tmp[i] = nums[i];
		}
        
        // 不能有重复元素
		if(set.size()!=n){
			System.out.println("NO");
			return;
		}

		Arrays.sort(tmp);
		HashMap<Integer, Integer> map = new HashMap<>();
		
        for (int i = 0; i < tmp.length; i++) {
			map.put(tmp[i],i);
		}

		for (int i = 0; i < nums.length; i++) {
			nums[i] = map.get(nums[i]);
		}
		int max =0;

		int cnt = 1;
		for (int i = 1; i < nums.length; i++) {
			if(Math.abs(nums[i]-nums[i-1])==1){
				cnt++;
			}else{
				max = Math.max(max, cnt);
				cnt=1;
			}
		}
        
		max = Math.max(max, cnt);

        System.out.println(max>=m?"YES":"NO");
	}

}

猜你喜欢

转载自blog.csdn.net/qq_30500575/article/details/146959543