原题传送门
1、思路分析
Step 1: 使用.
切开给定的version,得到若干部分versionParts。
Step 2: 逐段比较versionParts的数值大小。
2、代码实现
package Q0199.Q0165CompareVersionNumbers; public class Solution { public int compareVersion(String version1, String version2) { String[] verParts1 = version1.split("\\."); String[] verParts2 = version2.split("\\."); int len = Math.max(verParts1.length, verParts2.length); for (int i = 0; i < len; i++) { Integer v1 = i < verParts1.length ? Integer.parseInt(verParts1[i]) : 0; Integer v2 = i < verParts2.length ? Integer.parseInt(verParts2[i]) : 0; int compare = v1.compareTo(v2); if (compare != 0) return compare; } return 0; } }
3、复杂度分析
时间复杂度: O(n)
空间复杂度: O(n)