2022-09-25
start:
end
2022-09-27
start:
end
2023-01-23 start
end
2023-03-17
start:
public class Test {
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<Integer>();
for (int i = 1 ; i <= 100; i++) {
list.add(i);
}
recursion(6,list);
}
private static void recursion(int index,LinkedList<Integer> list) {
int size = list.size();
if (list.isEmpty()) {
return;
}
int index_ = index;
if (index >= size) {
index_ = index % size;
}
Integer value = list.get(index_);
list.remove(value);
System.out.print(value+",");
recursion(index_ + 6,list);
}
}
end
2023-04-16 start
约瑟夫环问题:
def josephus(n, m):
if n == 1:
return 0
else:
return (josephus(n-1, m) + m) % n
其中 n 表示总人数,m 表示报到 m 的人出圈。
以下是使用动态规划优化后的 Python 代码实现:
def josephus(n, m):
f = [0] * n
f[0] = 0
for i in range(1, n):
f[i] = (f[i-1] + m) % (i+1)
return f[n-1]
其中 f[i] 表示 i 个人中最后剩下的人的编号,初始值 f[0] = 0。使用循环从 1 到 n-1 计算 f[i],最后返回 f[n-1]。这个算法的时间复杂度为 O(m),空间复杂度为 O(n)。
end
2023-06-10 start
约瑟夫环问题更一般的解:
package xyz.haijin.image;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Test {
static int n = 41;
static int k = 2;
public static void main(String args[]) throws IOException {
int deal = deal(1, 2);
System.out.println(deal);
}
public static int deal(int v,int m) {
v = v + k;
while (v > m) {
v = v - m;
}
if (m == n) {
return v;
}
return deal(v,m+1);
}
}
2023-06-26 start:
Spring事务:Spring事务隔离级别有几种?分别是什么?Spring事务传播属性有几种?都是什么?
end
2023-06-29 start:
end