leetcode12】的更多相关文章

题意: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. 分析: 题目其实不难,但是需要先了解罗马数字的组成规则. 摘录百度百科如下: 相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3: 小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8.Ⅻ=12: 小的数字(限于 Ⅰ.X 和 C)在大的数字的左…
Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 For example, two is written as II in Roman numeral, just two one's added together. Twelve is written as, XII, which i…
给定一个整数,将其转为罗马数字.输入确保在 1 到 3999 的范围内. 示例 1: 输入: 3 输出: "III" 示例 2: 输入: 4 输出: "IV" 示例 3: 输入: 9 输出: "IX" 示例 4: 输入: 58 输出: "LVIII" 解释: C = 100, L = 50, XXX = 30, III = 3. 示例 5: 输入: 1994 输出: "MCMXCIV" 解释: M = 10…
public class Solution { public string IntToRoman(int num) { string[] M = { "", "M", "MM", "MMM" }; string[] C = { "", "C", "CC", "CCC", "CD", "D", "DC…
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1.12 写做 XII ,即为 X + II . 27 写做  XXVII, 即为 XX + V + II . 通常情况下,罗马数字中小的数字在大的数字的右边.但也存在特例,例如 4 不写做 IIII,而是 IV.数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4…
题目描述: 方法:区间dp O(N^3) class Solution: def minimumMoves(self, A: List[int]) -> int: N = len(A) dp = [[0] * (N+1) for _ in range(N+1)] for i in range(N+1): dp[i][i] = 1 for size in range(2, N+1): for i in range(N - size + 1): j = i + size - 1 dp[i][j] =…
题目描述: 方法一:深度优先: class Solution: def treeDiameter(self, edges: List[List[int]]) -> int: adjacency = collections.defaultdict(set) for i,j in edges: adjacency[i].add(j) adjacency[j].add(i) memo = {} def dfs(i,j): if (i,j) in memo: return memo[i,j] longe…
题目描述: 自己的提交: class Solution: def transformArray(self, arr: List[int]) -> List[int]: if len(arr) < 3: return arr flag = True while flag: tmp = [] tmp.append(arr[0]) for i in range(1,len(arr)-1): if arr[i] > arr[i-1] and arr[i] > arr[i+1]: tmp.a…
题目描述: class Leaderboard: def __init__(self): self.map = collections.Counter() def addScore(self, playerId: int, score: int) -> None: self.map[playerId] += score def top(self, K: int) -> int: return sum(sorted(self.map.values(),reverse = True)[:K]) d…
题目描述: 二维dp: class Solution: def probabilityOfHeads(self, prob: List[float], target: int) -> float: dp = [[0 for _ in range(target+1)] for _ in range(len(prob)+1)] dp[0][0] = 1.0 for i in range(1,len(prob)+1): for j in range(target+1)[::-1]: dp[i][j]…