学习目标:
利用快速排序法求解leetcode上的问题
学习了事务和乐观锁
学习SpringAop
学习内容:
leeycode215:
import java.util.Random;
class Leetcode251 {
public int findKthLargest(int[] nums, int k) {
Random rnd = new Random();
return selectK(nums, 0, nums.length - 1, nums.length - k, rnd);
}
private int selectK(int[] arr, int l, int r, int k, Random rnd){
int p = partition(arr, l, r, rnd);
if(k == p) return arr[p];
if(k < p) return selectK(arr, l, p - 1, k, rnd);
return selectK(arr, p + 1, r, k, rnd);
}
private int partition(int[] arr, int l, int r, Random rnd){
// 生成 [l, r] 之间的随机索引
int p = l + rnd.nextInt(r - l + 1);
swap(arr, l, p);
// arr[l+1...i-1] <= v; arr[j+1...r] >= v
int i = l + 1, j = r;
while(true){
while(i <= j && arr[i] < arr[l])
i ++;
while(j >= i && arr[j] > arr[l])
j --;
if(i >= j) break;
swap(arr, i, j);
i ++;
j --;
}
swap(arr, l, j);
return j;
}
private void swap(int[] arr, int i, int j){
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
通过代码简单的体验了一次SpringAOP,并且学习了AOP的关键概念,还学习了JoinPoint对象,还学习PointCut切点表达式。
学习时间:
07:30-10:00 10:30-10:50 15:30-16:30
学习产出:
学完快速排序法解决了leetcode上的实际问题,令我对快速排序法有了更深入的理解。
对于SpringAOP有了入门让你的了解,了解了它的简单实现过程。

被折叠的 条评论
为什么被折叠?



