当前位置:首页 > 编程笔记 > 正文
已解决

Python 1-06 练习

来自网友在路上 176876提问 提问时间:2023-09-23 15:40:11阅读次数: 76

最佳答案 问答题库768位专家为你答疑解惑

2057. 值相等的最小索引

class Solution:def smallestEqual(self, nums: List[int]) -> int:for i, x in enumerate(nums):if i % 10 == x: return ireturn -1 

2591. 将钱分给最多的儿童

class Solution:def distMoney(self, money: int, children: int) -> int:if money < children: return -1money -= children # 每人至少 1 美元res = min(money // 7, children) # 初步分配,让尽量多的人分到 8 美元money -= res * 7children -= resif (children == 0 and money > 0) or (children == 1 and money == 3):res -= 1return res

2706. 购买两块巧克力

class Solution:def buyChoco(self, prices: List[int], money: int) -> int:a = b = inffor x in prices:if x < a:b, a = a, xelif x < b:b = xreturn money - a - b if a + b <= money else money 

2455. 可被三整除的偶数的平均值

class Solution:def averageValue(self, nums: List[int]) -> int:sum = count = 0for x in nums:if x % 6 == 0:sum += xcount += 1return 0 if count == 0 else sum // count

2078. 两栋颜色不同且距离最远的房子

class Solution:def maxDistance(self, colors: List[int]) -> int:n = len(colors)res = 0   # 两栋颜色不同房子的最远距离# 遍历两栋房子下标并维护最远距离for i in range(n):for j in range(i + 1, n):if colors[i] != colors[j]:res = max(res, j - i)return res

优化

class Solution:def maxDistance(self, colors: List[int]) -> int:n = len(colors)c = colors[0]if c != colors[-1]: return n - 1i, j = 1, n - 2while colors[i] == c: i += 1while colors[j] == c: j -= 1return max(j, n - i - 1)

2073. 买票需要的时间

class Solution:def timeRequiredToBuy(self, tickets: List[int], k: int) -> int:n = len(tickets)res = 0for i in range(n):# 遍历计算每个人所需时间if i <= k:res += min(tickets[i], tickets[k])else:res += min(tickets[i], tickets[k] - 1)return res

1848. 到目标元素的最小距离

class Solution:def getMinDistance(self, nums: List[int], target: int, start: int) -> int:res = inffor i, x in enumerate(nums):if x == target:res = min(res, abs(i - start))return res

1732. 找到最高海拔

class Solution:def largestAltitude(self, gain: List[int]) -> int:# 差分逆运算前缀和m = pre = 0for x in gain:pre += xif pre > m: m = prereturn m

1413. 逐步求和得到正数的最小值

class Solution:def minStartValue(self, nums: List[int]) -> int:ans = 1acc = 0#mn = inffor i, x in enumerate(nums):acc += xif acc < 0:ans = max(ans, 1 - acc)#mn = min(mn, acc)return ans#return 1 if mn > 0 else 1 - mn
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Python 1-06 练习":http://eshow365.cn/6-12174-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!