做题
一道简单的题,力扣56:
输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
其中这些区间并没有排序顺序,所以先进行排序可以对后续的处理进行简化,这里简单讲讲接口Comparator,以及Arrays.sort()
首先,sort函数的几个常用方法:
public static void sort(int[] a);
public static void sort(Object[] a);
public static <T> void sort(T[] a, Comparator<? super T> c);
在Arrays.sort方法中,可以使用Comparator方法指定排序依据,来看一下题目的解决代码:
class Solution {
public int[][] merge(int[][] intervals) {
int len = intervals.length;
if(len < 2) return intervals;
/*实现一个匿名接口指定排序依据,这样实现后,sort函数将会根据intervals[i][0]的大小升序排序*/
Arrays.sort(intervals, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] - o2[0];
}
});
int count = 0;
for(int i=0;i<len-1;i++) {
int j = i+1;
if(intervals[i][1] >= intervals[j][0]) {
intervals[j][0] = Math.min(intervals[i][0],intervals[j][0]);
intervals[j][1] = Math.max(intervals[i][1],intervals[j][1]);
intervals[i] = null;
count++;
}
}
int[][] res = new int[len - count][2];
int k = 0;
for(int[] pair : intervals) {
if(pair != null) {
res[k++] =pair;
}
}
return res;
}
}
Java学习
做了一个java连接数据库的demo。首先要下载到正确的jdbc驱动包,现在昂在tool/JDBC里面的了。然后看一下连接建立的url和驱动描述串的写法:
final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
final String DB_URL = "jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC";