📢 📢 📢 大家好呀,我又来了,今天一整天都感觉困困的,可能昨晚睡眠不太好吧,早早就从图书馆回来了,来看今天的题目吧。
🍡🍡🍡组队🍡🍡🍡
📋问题描述
❓思路分享
这道题目就是口算题目了自己加一下就得出答案了,要注意的是,一个运动员不能打多个位置,因为他不会分身。
System.out.println(490);
⭐⭐⭐不同子串⭐⭐⭐
⭐问题描述
❓思路分享
两个要点:
⭐一个i指针,一个j指针,i在前j在后,i从0开始,j从i+1开始,这样两个指针就“圈”出了字符串的所有子串,将这些子串全部放到Set里面。
⭐Set自带去重属性,返回Set的长度就是不同子串的个数啦
📗参考代码
import java.util.HashSet;
import java.util.Set;
/**
* @ClassName 不同子串
* @Author @浅夜
* @Date 2023/3/17 21:25
* @Version 1.0
*/
public class 不同子串 {
public static void main(String[] args) {
String s = "0100110001010001";
int n = s.length();
Set<String> set = new HashSet<>();
for(int i = 0; i < n; i++){
for(int j = i+1; j <= n;j++){
set.add(s.substring(i,j));
}
}
System.out.println(set.size());
}
}
🍚🍚🍚等差数列🍚🍚🍚
📋问题描述
❓思路分享
🍚这道题目最终要求的是等差数列的项数,那么项数怎么算呢:
🍚而且求的是最短的项数,要最短,最大项肯定就是给定数列的最大值啦,我们还不知道的就只剩公差了,公差怎么计算呢?
🍚我们只需要将数列排序,将相邻元素的差值维护成一个数组,这个新的数组的最大公约数就是等差数列的公差啦。
📗参考代码
import java.util.Arrays;
import java.util.Scanner;
/**
* @ClassName 等差数列
* @Author @浅夜
* @Date 2023/3/17 21:35
* @Version 1.0
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
Arrays.sort(a);
int d = a[1] - a[0];
for (int i = 2; i < n; i++) {
d = gcd(d, a[i] - a[i - 1]);
}
if (d == 0) System.out.println(n);
else System.out.println((a[n - 1] - a[0]) / d + 1);
}
static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
}
🍝🍝🍝波动数列🍝🍝🍝
📋问题描述
这道题不会,看了怂佬的代码还是不会😭
📢📢📢今天有点水了,有的题目感觉很简单,有的题目直接看答案都不会做,还是知识面太窄了,刷题刷题😠