Algorithm/Leetcode, Lintcode, HackerRank, etc.(54)
-
3889. Mirror Frequency Distance
class Solution: def mirrorFrequency(self, s: str) -> int: freq = collections.Counter(s) diff = 0 visited = set() for ch in set(s): if ch in visited: continue if ch.isalpha(): letter = chr(ord('z') - (ord(ch) - ord('a'))) else: letter = chr(ord('9') - (ord(ch) - ord('0'))) visit..
2026.04.05 -
3882. Minimum XOR Path in a Grid
def minCost(self, grid: list[list[int]]) -> int: rows = len(grid) cols = len(grid[0]) mem = collections.defaultdict(lambda: set()) def dfs(y, x, inc, mn): if y > rows - 1 or x > cols - 1: return cur = inc ^ grid[y][x] if (y, x) in mem and cur in mem[(y, x)]: return mem[(y, x)].add(cur) ..
2026.04.05 -
3880. Minimum Absolute Difference Between Two Values
class Solution: def minAbsoluteDifference(self, nums: list[int]) -> int: def find_diff(nums, mn): stk = [] for i, num in enumerate(nums): if num == 1: stk += (i, num), continue if num == 0: continue while stk: diff = i - stk[-1][0] ..
2026.04.03 -
Minimum cost to equalize arrays using swap
class Solution: def minCost(self, nums1: list[int], nums2: list[int]) -> int: freq1 = collections.Counter(nums1) freq2 = collections.Counter(nums2) freq = freq1 + freq2 for k, v in freq.items(): if v % 2 != 0: return -1 count = 0 for num in freq: target = freq[num] // 2 if freq1[num] > target: ..
2026.03.15 -
Sum of GCD of Formed Pairs
Input: nums = [3,6,2,8]Output: 5from left, check maximum value and at each location, calculate GCD with the maximum value and the current value.then sort the GCDsand from each outside, pick the two outside values and calculate GCD, and repeat it until no items left.import mathclass Solution: def gcdSum(self, nums: list[int]) -> int: mx = float('-inf') gcds = [] for num in..
2026.03.15 -
First Unique Even Element
Input: nums = [3,4,2,5,4,6]Output: 2class Solution: def firstUniqueEven(self, nums: list[int]) -> int: freq = collections.defaultdict(int) removes = set() evens = [] for i, num in enumerate(nums): if num % 2 == 0: freq[num] += 1 evens += num, if freq[num] > 1: removes.add(num) for remove in r..
2026.03.15