2905. 找出满足差值条件的下标 II
2905. 找出满足差值条件的下标 II
class Solution:
def findIndices(self, nums, indexDifference: int, valueDifference: int) -> List[int]:
for i in range(len(nums)):
nums[i] = (nums[i], i)
nums.sort(key=lambda x: x[0])
for i in range(len(nums) - 1, -1, -1):
if abs(nums[i][0] - nums[0][0]) < valueDifference:
return [-1, -1]
for j in range(0, i + 1):
if abs(nums[i][0] - nums[j][0]) < valueDifference:
break
if abs(nums[i][1] - nums[j][1]) >= indexDifference:
return [nums[i][1], nums[j][1]]
return [-1, -1]
1507. 转变日期格式
1507. 转变日期格式
class Solution:
def reformatDate(self, date: str) -> str:
map = {"Jan": "1", "Feb": "2", "Mar":"3", "Apr": "4", "May": "5",
"Jun": "6", "Jul": "7", "Aug": "8", "Sep": "9", "Oct": "10", "Nov": "11", "Dec": "12"}
date = date.split(' ')
date.reverse()
date[2] = date[2][:-2].rjust(2, '0')
date[1] = map[date[1]].rjust(2, '0')
return '-'.join(date)
LCR 002. 二进制求和
LCR 002. 二进制求和
class Solution:
def addBinary(self, a: str, b: str) -> str:
return bin(int(a, 2) + int(b, 2))[2:]
面试题 16.15. 珠玑妙算
面试题 16.15. 珠玑妙算
from collections import Counter
class Solution:
def masterMind(self, solution: str, guess: str) -> List[int]:
s = Counter(solution)
g = Counter(guess)
ans = [0, 0]
for i in range(len(solution)):
if solution[i] == guess[i]:
ans[0] += 1
s[solution[i]] -= 1
if s[solution[i]] == 0:
s.pop(solution[i])
g[guess[i]] -= 1
if g[guess[i]] == 0:
g.pop(guess[i])
for item in s.keys() & g.keys():
ans[1] += min(s[item], g[item])
return ans
373. 查找和最小的 K 对数字
373. 查找和最小的 K 对数字
import heapq
class Solution:
def kSmallestPairs(self, nums1: List[int], nums2: List[int], k: int) -> List[List[int]]:
queue = [(nums1[i] + nums2[0], i, 0) for i in range(len(nums1))]
ans = []
while queue and len(ans) < k:
_, i, j = heapq.heappop(queue)
ans.append([nums1[i], nums2[j]])
if j + 1 < len(nums2):
heapq.heappush(queue, (nums1[i] + nums2[j + 1], i, j + 1))
return ans
2611. 老鼠和奶酪
2611. 老鼠和奶酪
class Solution:
def miceAndCheese(self, reward1: List[int], reward2: List[int], k: int) -> int:
reward = [(reward1[i] - reward2[i], i) for i in range(len(reward1))]
ans = 0
reward.sort(key=lambda x: x[0])
for i in range(len(reward)):
_, index = reward[i]
if i < len(reward) - k:
ans += reward2[index]
else:
ans += reward1[index]
return ans
Comments | NOTHING