力扣刷题--简单题系列

1.人口最多的年份:

class Solution:
    def maximumPopulation(self, logs: List[List[int]]) -> int:
        delta = [0] * 101   # 变化量
        offset = 1950   # 起始年份与起始下标之差
        for b, d in logs:
            delta[b-offset] += 1
            delta[d-offset] -= 1
        mx = 0   # 人口数量最大值
        res = 0   # 最大值对应的最小下标
        curr = 0   # 每一年的人口数量
        # 前缀和
        for i in range(101):
            curr += delta[i]
            if curr > mx:
                mx = curr
                res = i
        return res + offset   # 转回对应的年份

2.最富有客户的资产总量 -简单

class Solution:
    def maximumWealth(self, accounts: List[List[int]]) -> int:
        return max(sum(num) for num in accounts)

3.宝石与石头

遍历宝石J中的字符,如果在stones中,则+1

class Solution:
    def numJewelsInStones(self, jewels: str, stones: str) -> int:
        sum = 0
        for j in jewels:
            for k in range(len(stones)):
                if j in stones[k]:
                    sum += 1 
        return sum

4.左旋转字符串-简单

使用python,将字符串剪开两端,然后拼接

class Solution:
    def reverseLeftWords(self, s: str, n: int) -> str:
        return s[n:]+s[:n]

一行代码即可

5.

位数为偶数,与数的大小无关,可以先把数字转为字符串,统计字符串长度%2==0 即可

class Solution:
    def findNumbers(self, nums: List[int]) -> int:
        i = 0
        for num in nums:
            if len(str(num))%2 == 0:
                i += 1
            else:
                i += 0
        return i
经验分享 程序员 微信小程序 职场和发展