哪家公司网站建设好,网站未备案可以上线吗,企业建设网站的目的和意义,中山市区做网站公司一、力口#xff1a;506. 相对名次
简单 给你一个长度为 n 的整数数组 score #xff0c;其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。
运动员将根据得分 决定名次 #xff0c;其中名次第 1 的运动员得分最高#xff0c;名次第 2 的运动员得分第…一、力口506. 相对名次
简单 给你一个长度为 n 的整数数组 score 其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。
运动员将根据得分 决定名次 其中名次第 1 的运动员得分最高名次第 2 的运动员得分第 2 高依此类推。运动员的名次决定了他们的获奖情况
名次第 1 的运动员获金牌 “Gold Medal” 。 名次第 2 的运动员获银牌 “Silver Medal” 。 名次第 3 的运动员获铜牌 “Bronze Medal” 。 从名次第 4 到第 n 的运动员只能获得他们的名次编号即名次第 x 的运动员获得编号 “x”。 使用长度为 n 的数组 answer 返回获奖其中 answer[i] 是第 i 位运动员的获奖情况。
示例 1 输入score [5,4,3,2,1] 输出[“Gold Medal”,“Silver Medal”,“Bronze Medal”,“4”,“5”] 解释名次为 [1st, 2nd, 3rd, 4th, 5th] 。
示例 2 输入score [10,3,8,9,4] 输出[“Gold Medal”,“5”,“Bronze Medal”,“Silver Medal”,“4”] 解释名次为 [1st, 5th, 3rd, 2nd, 4th] 。
class Solution:def findRelateRank(self, nums):pairs []for i in range(len(nums)):pairs.append([nums[i], i]) # [[10,0],[3,1],[8,2],[9,3],[4,4]]pairs1 sorted(pairs, keylambda x: x[0], reverseTrue) # [[10,0],[9,3],[8,2],[4,4],[3,1]]for i in range(len(nums)):if i 0:nums[pairs1[i][1]] Gif i 1:nums[pairs1[i][1]] Sif i 2:nums[pairs1[i][1]] Bronze Medalif i 2:nums[pairs1[i][1]] str(i 1)return numss Solution()
nums [10, 3, 8, 9, 4]
print(s.findRelateRank(nums))二、力口485.最大连续 1 的个数
简单 给定一个二进制数组 nums 计算其中最大连续 1 的个数。
示例 1 输入nums [1,1,0,1,1,1] 输出3 解释开头的两位和最后的三位都是连续 1 所以最大连续 1 的个数是 3.
示例 2: 输入nums [1,0,1,1,0,1] 输出2
def fun1(nums):pre 0res 0for i in nums:if i 1:pre 1res max(pre, res)else:pre 0return resnums [1, 0, 1, 1, 0, 1]
r fun1(nums)
print(r)三、力口476. 数字的补数
简单 对整数的二进制表示取反0 变 1 1 变 0后再转换为十进制表示可以得到这个整数的补数。
例如整数 5 的二进制表示是 “101” 取反后得到 “010” 再转回十进制表示得到补数 2 。 给你一个整数 num 输出它的补数。
示例 1 输入num 5 输出2 解释5 的二进制表示为 101没有前导零位其补数为 010。所以你需要输出 2 。
示例 2 输入num 1 输出0 解释1 的二进制表示为 1没有前导零位其补数为 0。所以你需要输出 0 。
def test1(num):r bin(num)print(r)res 0bfor i in r[2:]:if i 0:ss i.replace(i, 1)res sselse:ss i.replace(i, 0)res ssprint(res)print(int(res, 2))num 5
test1(num)四、力口461. 汉明距离
简单 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y计算并返回它们之间的汉明距离。 思路 异或运算符^ 运算规则当两对应的二进位相异时结果为1 0^00 0^11 1^01 1^10 即参加运算的两个对象如果两个位为“异”值不同则该位结果为1否则为0。 但如果仔细学习就会了解对于两个数字的异或结果其实是转化为二进制后按位比较的。 如上方示例的说明 1 ^ 4 后由于第一位和第三位(从低位到高位/右到左)不同 所以结果是0101结果为5所以1^ 4 5 那么我们只需要先将两数异或后获取哪些位数为1代表这两个数该位上的值不同就是结果。
class Solution:def hammingDistance(self, x: int, y: int) - int:return bin(x ^ y).count(1)