- 数组暴力模拟的,O(n^2)
import java.util.Scanner;
public class Main1 {
private static void work() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] height = new int[100010];
for (int i = 0; i < n; i++) {
height[i] = sc.nextInt();
}
int[] see = new int[100010];
if (n == 1) {
System.out.println(height[0]);
return;
}
// 0 - n-1
for (int i = 1; i < n; i++) {
for (int j=i-1; j>=0; j--) {
if (height[j] >= height[i]) {
see[j]++;
break;
}
}
}
int maxn = 0, maxi = 0;
// for (int i = 0; i < n; i++) {
// System.out.print(see[i]+" ");
// }
for (int i=0; i<n; i++) {
if (see[i] > maxn) {
maxn = see[i];
maxi = i;
}
}
System.out.println(height[maxi]);
}
public static void main(String[] args) {
work();
}
}
- BFS,当前状态不在hashmap里面就递归搜索,在了的话看看是不是当前是不是最小,是的话需要更新最小
- 没看
- 始终判断当前长度。
当前长度=1,直接输出前半部分+最后的一个(一定存在)
当前长度=2,拿一位解密,一定可行。判断这两位数连起来能不能解密,不能就退出,能的话长度 -2 递归
import java.util.HashMap;
import java.util.Scanner;
public class Main4 {
private static HashMap<Integer, Character> hashMap = new HashMap<>();
private static void init() {
for (int i = 'A'; i < 'Z'; i++) {
char ch = (char) i;
hashMap.put(i - 'A' + 1, ch);
}
}
private static void showHashMap() {
for (Integer num : hashMap.keySet()) {
System.out.println(num + " " + hashMap.get(num));
}
}
private static void printMessage(String str, String nowStr) {
//System.out.println("printMessage" + " " + str + " " + nowStr);
if (str == null || str == "") {
System.out.println(nowStr);
return;
}
if (str.length() == 1) {
if (hashMap.containsKey(str.charAt(0) - '0')) {
System.out.println(nowStr + hashMap.get(str.charAt(0) - '0'));
}
return;
}
// 否则就是大于等于2了, 尝试拿一个或者拿两个
// 拿一个, 永远满足
//System.out.println(str + str.length());
int num1 = str.charAt(0) - '0';
int num2 = str.charAt(1) - '0';
printMessage(str.substring(1), nowStr + hashMap.get(num1));
int key = num1 * 10 + num2;
//System.out.println(key);
if (hashMap.containsKey(key)) {
if (str.length() == 2) {
printMessage("", nowStr + hashMap.get(key));
} else {
printMessage(str.substring(2), nowStr + hashMap.get(key));
}
}
}
public static void main(String[] args) {
init();
// showHashMap();
Scanner sc = new Scanner(System.in);
String str = sc.next();
printMessage(str, "");
}
}