1.活动选择
力扣:435. 无重叠区间
public static int countMaxActivity (ArrayList<ArrayList<String>> timeSchedule) {
// 时间的比较,可以使用字符串的compareTo算法。
Collections.sort(timeSchedule,new Comparator<ArrayList<String>>() {
@Override
public int compare(ArrayList<String> o1, ArrayList<String> o2) {
return o1.get(1).compareTo(o2.get(1));
}
});
String end = timeSchedule.get(0).get(1);
int count = 1;
for(int i = 1;i<timeSchedule.size();i++){
ArrayList<String> temp = timeSchedule.get(i);
String start = temp.get(0);
if(start.compareTo(end) >= 0){
end = temp.get(1);
count++;
}
}
return count;
}2.最小路径和
力扣:64. 最小路径和
public int findMin (int[][] mapArray) {
// 动态规划dp
int m = mapArray.length;
int n = mapArray[0].length;
int[][] dp = new int[m][n];
dp[0][0] = mapArray[0][0];
for(int i = 1;i<m;i++){
dp[i][0] = dp[i-1][0] + mapArray[i][0];
}
for(int j = 1;j<n;j++){
dp[0][j] = dp[0][j-1] + mapArray[0][j];
}
for(int i = 1;i<m;i++){
for(int j = 1;j<n;j++){
dp[i][j] = Math.min(dp[i-1][j],dp[i][j-1]) + mapArray[i][j];
}
}
return dp[m-1][n-1];
}3.版本号
和蔚来考的一样。力扣:165. 比较版本号
public int[] max_version (String[][] version_list) {
// 版本号:就是转成数字,逐位比较
int m = version_list.length;
int[] result = new int[m];
for(int i = 0;i<m;i++){
result[i] = compare(version_list[i][0],version_list[i][1]);
}
return result;
}
public int compare(String v1,String v2){
String[] v1s = v1.split("\\.");
String[] v2s = v2.split("\\.");
int m = Math.max(v1s.length,v2s.length);
int n1 = 0;
int n2 = 0;
for(int i = 0;i<m;i++){
if(i >= v1s.length){
n1 = 0;
}else {
n1 = Integer.parseInt(v1s[i]);
}
if(i >= v2s.length){
n2 = 0;
}else {
n2 = Integer.parseInt(v2s[i]);
}
if(n1 > n2){
return 1;
}else if(n1 < n2){
return 2;
}else {
continue;
}
}
return 1;
}
京公网安备 11010502036488号