一点资讯题目
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; }