1. 第一题:
import java.util.*;
public class Main1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
getNumber(i);
}
}
public static void getNumber(int n) {
StringBuilder sb = new StringBuilder();
while (n != 0) {
int temp = (n - 1) % 3;
if (temp == 0) {
sb.append(2);
} else if (temp == 1) {
sb.append(3);
} else {
sb.append(5);
}
n = (n - 1) / 3;
}
sb.reverse();
System.out.print(sb.toString() + " ");
}
}
2. 第二题:
import java.util.*;
public class Main2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int nums[][] = new int[n][2*n + 1];
for(int i = 0; i < n; i++)
{
for(int j = 0; j < 2*i + 1; j++)
{
nums[i][j] = sc.nextInt();
}
}
int dp[][] = new int[n][2*n + 1];
dp[0][0] = nums[0][0];
for(int i = 0; i < n - 1; i++)
{
for(int j = 0; j < 2*i + 1; j++)
{
dp[i + 1][j] = Math.max(dp[i + 1][j], dp[i][j] + nums[i + 1][j]);
dp[i + 1][j + 1] = Math.max(dp[i + 1][j + 1], dp[i][j] + nums[i + 1][j + 1]);
dp[i + 1][j + 2] = Math.max(dp[i + 1][j + 2], dp[i][j] + nums[i + 1][j + 2]);
}
}
int res = 0;
for(int i = 0; i < 2*n + 1; i++)
{
res = Math.max(res, dp[n - 1][i]);
}
System.out.println(res);
}
}
参考:
1. 第一题:
- 京东java笔试第一题
- 08-27京东
- 面试题49. 丑数
2. 第二题:
- 京东8.27笔试,纪念第一次全A
- 8.27 京东笔试Java开发题解(附题目、思路、复杂度)
- 8-27京东笔试Java开发题解
- 8.27 京东java笔试 代码
- 120. 三角形最小路径和