获得徽章 0
- 51. 和的逆运算问题
首先对 sums 数组进行排序。确定最小数:最小的和一定是两个最小的数相加的结果。假设这两个最小的数是 a 和 b,那么 a + b 就是 sums 数组中的最小值。
递归推导:从 sums 中移除 a + b,然后继续寻找下一个最小的和,直到找到所有的数。
验证结果:如果推导出的数与 sums 中的和一致,则说明推导正确;否则,输出 "Impossible"。展开评论点赞 - 110. 小M的能力选择挑战
使用动态规划,状态转移方程:
对于每种能力 array[i],我们有两种选择:
不购买该能力:dp[i][j][k] = dp[i-1][j][k]
购买该能力:dp[i][j][k] = max(dp[i][j][k], dp[i-1][j-c][k-s] + d),但需要确保 k-s >= 0
dp[0][j][k] = 0,表示没有购买任何能力时,攻击力为0。展开评论点赞 - 49.红包运气排行榜
使用 Collections.sort 方法,并提供一个自定义的比较器(Comparator),该比较器首先比较金额(降序),如果金额相同,则比较输入顺序(升序)评论点赞 - 34. 游戏排名第三大的分数
使用TreeSet来存储不同的分数,将数组中的每个分数添加到 TreeSet 中,如果 TreeSet 的大小大于等于 3,则返回第三大的元素否,则,返回 TreeSet 中的最大元素。评论点赞 - 22. 最少字符操作次数
map统计。
统计频率:遍历字符串,更新数组中的频率。
计算操作次数:
对于每个字符,如果它的频率大于1,则计算需要多少次操作才能将其频率减少到1。
累加所有字符的操作次数。展开评论点赞