蓝桥杯练习题(一)

前言

本文主要是【算法】——蓝桥杯练习题(一)的文章,如果有什么需要改进的地方还请大佬指出⛺️

作者简介:大家好,我是听风与他
☁️博客首页:CSDN主页听风与他
每日一句:狠狠沉淀,顶峰相见

目录

    • 前言
    • [252.查找两个总和为特定值的索引 - 蓝桥云课 (lanqiao.cn)]
    • 720.[世纪末的星期 - 蓝桥云课 (lanqiao.cn)]
    • [614.第几天 - 蓝桥云课 (lanqiao.cn)]
    • [1463.货物摆放 - 蓝桥云课 (lanqiao.cn)]
    • [2080.求和 - 蓝桥云课 (lanqiao.cn)]
    • [315.寻找 3 个数的最大乘积 - 蓝桥云课 (lanqiao.cn)]
    • 文章末尾

[252.查找两个总和为特定值的索引 - 蓝桥云课 (lanqiao.cn)]

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
/*
6
1 2 3 -2 5 7
7
 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt();
		int num[] = new int[n];
		for(int i=0;i<n;i++) {
			num[i]=sc.nextInt();
		}
		int target = sc.nextInt();
		Map<Integer, Integer> map = new HashMap<>();
		int a[]=new int[2];
		for(int i=0;i<n;i++) {
			map.put(num[i], i);
		}
		//索引最小,只需要保证第一个数最小
		for(int i=0;i<n;i++) {
			int num1=target-num[i];
			if(map.containsKey(num1)) {
				System.out.println(i+" "+map.get(num1));
				break;
			}else {
				map.put(num[i], i);
			}
		}
	}

}

720.[世纪末的星期 - 蓝桥云课 (lanqiao.cn)]

import java.util.Calendar;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//创建一个日历类
		Calendar calendar = Calendar.getInstance();
		//星期日用1来表示
//		calendar.set(2000, 0,2);
//		System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
		int i=0;
		for(i=1999;;i+=100) {
			calendar.set(i, 11,31);//注意,月份从0开始表示,0表示1月
			if(calendar.get(Calendar.DAY_OF_WEEK)==1) {
				break;
			}
		}
		System.out.println(i);
	}

}

[614.第几天 - 蓝桥云课 (lanqiao.cn)]

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		System.out.println(2*31+1*30+4+29);
	}

}

[1463.货物摆放 - 蓝桥云课 (lanqiao.cn)]

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		List<Long> list = new ArrayList<>();
		long ans=0;
		long n=2021041820210418L;
		//依次遍历,不可能出现重复的情况
		for(long i=1;i<=n/i;i++) {
			if(n%i==0) {
				list.add(i);
				list.add(n/i);
			}
		}
		for(Long i:list) {
			for(Long j:list) {
				for(Long k:list) {
					if(i*j*k==n) {
						ans++;
					}
				}
			}
		}
		System.out.println(ans);
	}

}

[2080.求和 - 蓝桥云课 (lanqiao.cn)]


import java.util.Scanner;

public class Main {
/*
4
1 3 6 9
117
 */
//注意数据范围,本题sum数组使用long
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt();
		long ans=0;
		int a[]=new int[n+1];
		long sum[]=new long[n+1];
		for(int i=1;i<=n;i++) {
			a[i]=sc.nextInt();
		}
		//累积和
		for(int i=1;i<=n;i++) {
			sum[i]=a[i]+sum[i-1];
		}
		for(int i=1;i<=n;i++) {
			ans+=a[i]*(sum[n]-sum[i]);
		}
		System.out.println(ans);
	}

}

[315.寻找 3 个数的最大乘积 - 蓝桥云课 (lanqiao.cn)]

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt();
		int a[] = new int[n];
		int k=0,t=0;
		long ans=0;
		for(int i=0;i<n;i++) {
			a[i]=sc.nextInt();
			if(a[i]<0) {
				k++;
			}else {
				t++;
			}
		}
		Arrays.sort(a);
		//负数要么2个,要么0个,才能保证最后的乘积最大
		ans = Math.max(a[0]*a[1]*a[n-1], a[n-1]*a[n-2]*a[n-3]);
		System.out.println(ans);
	}

}

文章末尾

蓝桥杯练习题(一)_第1张图片

你可能感兴趣的:(蓝桥杯,java,算法)