C/C++教程

LeetCode 0165 Compare Version Numbers

本文主要是介绍LeetCode 0165 Compare Version Numbers,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

原题传送门

1. 题目描述

2. Solution 1

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)

这篇关于LeetCode 0165 Compare Version Numbers的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!