var ( values = []int{1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1})funcintToRoman(num int) string { res :=""for _, value :=range values {for num >= value { num -= valueswitch value {case1000: res +="M"case900: res +="CM"case500: res +="D"case400: res +="CD"case100: res +="C"case90: res +="XC"case50: res +="L"case40: res +="XL"case10: res +="X"case9: res +="IX"case5: res +="V"case4: res +="IV"case1: res +="I" } }if num ==0 {break } }return res}
复杂度分析一
时间复杂度: 对 values 进行了一次遍历,又在其中对 num 进行了循环处理,时间复杂度为 O(n2)