- 自我介绍
- es怎么落库的
- 这个项目下单的流程,关联了哪几张表
- 支付功能有没有了解过,怎么做的
- java的垃圾回收
- 通信有哪些方法
- 乐观锁,悲观锁
- 数据库隔离级别,mvcc
- tcp,udp区别
- 4次挥手为什么要2msl
- java的闭包
- 数据库自增id有什么好处
- tcp,udp报文格式
- redis数据一致性 rdb ads
- redolog,binlog
- 数据库为什么要用b+树
- http和https区别
- dns解析过程
List<Runnable> task = new ArrayList<>();
for (int i = 0; i < 3; i++) {
task.add(() -> System.out.println(index));
}
// 启动线程并执行 Runnable 任务
for (Runnable runnable : task) {
Thread t = new Thread(runnable);
t.start();
}
//java的闭包
id a b c
row1 1 2 3 4
row2 2 2 2 3
tx1 开始事务
tx2开始事务
tx2更新row2b=4
tx1查询表 c>=3的数据
tx2commit
tx1查询表 c>=3的数据
查询的结果是什么
算法
给定一个数 n,如 23121;给定一组数字 A 如 {2,4,9},求由 A 中元素组成的、小于 n 的最大数,如小于 23121 的最大数为 22999。
public int findMaxNumberLessThanN(int n, int[] A) {
char[] nStr = String.valueOf(n).toCharArray();
Arrays.sort(A); // 将 A 排序
StringBuilder result = new StringBuilder();
for (int i = 0; i < nStr.length; i++) {
boolean found = false;
for (int j = A.length - 1; j >= 0; j--) {
if (A[j] <= nStr[i] - '0') {
result.append(A[j]);
found = true;
break;
}
}
if (!found) {
// 回退到前一位
for (int j = result.length() - 1; j >= 0; j--) {
for (int k = A.length - 1; k >= 0; k--) {
if (A[k] < result.charAt(j) - '0') {
result.setCharAt(j, (char) (A[k] + '0'));
result.setLength(j + 1); // truncate the string to the current length
for (int l = j + 1; l < nStr.length; l++) {
result.append(A[A.length - 1]);
}
return Integer.parseInt(result.toString());
}
}
}
// 如果回退到第一位仍然无法找到合适的数字,说明无解
return -1;
}
// 如果当前位已经选择了一个小于 nStr[i] 的数字
if (result.charAt(result.length() - 1) < nStr[i]) {
for (int j = result.length(); j < nStr.length; j++) {
result.append(A[A.length - 1]);
}
return Integer.parseInt(result.toString());
}
}
// 检查生成的数字是否小于原数字
if (Integer.parseInt(result.toString()) >= n) {
// 回退到前一位
for (int j = result.length() - 1; j >= 0; j--) {
for (int k = A.length - 1; k >= 0; k--) {
if (A[k] < result.charAt(j) - '0') {
result.setCharAt(j, (char) (A[k] + '0'));
result.setLength(j + 1); // truncate the string to the current length
for (int l = j + 1; l < nStr.length; l++) {
result.append(A[A.length - 1]);
}
return Integer.parseInt(result.toString());
}
}
}
return -1;
}
return Integer.parseInt(result.toString());
}
Comments NOTHING