day11

加油,又是美好的一天

  1. 字符统计

将字母数量转化为数组对应的下标

Scanner sc = new Scanner(System.in);

String str =sc.next().toUpperCase();

char c [] = str.toCharArray();//转化为字符数组

int [] arr = new int [26];//开26个大小存储相应的字母数量s

for(int i=0;i<c.length;i++) {

arr[c[i] - 'A']++;// 66 - 65 arr[1]++; (表示有一个B)

}

int max = 0;

for(int i=0;i<arr.length;i++) {

if(arr[i] > max) {

max = arr[i];

}

}

for(int i=0;i<arr.length;i++) {

if(arr[i] == max) {

System.out.println((char)( i +'A'));// 3 + '65' ==68 含有一个C

}

  1. 卡片

package daka;

import java.util.Arrays;

import java.util.Scanner;

/*

* 卡片

*

*/

public class testss {

public static void main(String[] args) {

int arr[] = new int [10];

for(int i=0;i<arr.length;i++) {

arr[i] =2021;

}

int result = 0;

for(result = 1;result<99999;result++) {

String str = result+"";

String [] split = str.split("");

for(int i=0;i<split.length;i++) {

int j = Integer.parseInt(split[i]);

if(arr[j] > 0) {

arr[j]--;

}

else {

System.out.println(result-1);

return;

}

}

}

}

}

  1. 路径

package lq;

import java.util.*;

public class lujin {

public static int gcd(int a, int b) {//计算最大公因数

if (a % b != 0) return gcd(b, a % b);//a不整除b;或者a<b时使得a,b交换

return b;//a整除b

}

/*public static int lcm(int a, int b) {//求最大公倍数

return a * b / gcd(a, b);

}*/

public static void main(String[] args) {

int[] f = new int[2022];

for(int i = 1;i <= 2021;i++) {//从结点1开始

for(int j = i+1;j <= i+21;j++) {//讨论能与结点1构成无向边的结点

if(j > 2021)

break;

if(f[j] == 0)

f[j] = f[i]+(j*i/gcd(i,j));//(j*i/gcd(i,j))这一部分才是用来求最大公因数的,eg:(2*4/gcd(4,2)),gcd(4,2)返回2

else //随着i++,f[j]≠0就要判断当前存储路径和之前的存储路径哪个才是最短路径

f[j] = Math.min(f[j],f[i]+j*i/gcd(i,j));

}

}

System.out.println(f[2021]);

}

}

4.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

螺上螺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值