2021—11-5号每日力扣题打卡

铁甲小宝同学 小卷王
新星创作者: 编程框架技术领域
2021-11-05 22:25:01

目录

2021-11-5

题目

1.最小的k个数

2.数组中出现次数超过数组长度一半的数

3.最长差定子序列

4.礼物的最大价值

题解

1.最小的k个数

2.数组中出现次数超过数组长度一半的数

3.最长差定子序列

4.礼物的最大价值

代码

1.最小的k个数

2.数组中出现次数超过数组长度一半的数

3.最长差定子序列

4.礼物的最大价值


 

2021-11-5

题目

1.最小的k个数

 

2.数组中出现次数超过数组长度一半的数

 

3.最长差定子序列

 

4.礼物的最大价值

 


题解

1.最小的k个数

本题太过简单!!!

看代码就可以理解!!!

2.数组中出现次数超过数组长度一半的数

本题我是用哈希表来解的,但是本题应该不止一种方法,所以大家也可以自己试试自己的方法!

我们先用一个字典把不同的元素放到字典中,初始值都为0,然后我们在遍历nums数组,然后找到每个元素的有多少个,然后返回value里面的最大值得键就可以!!

3.最长差定子序列

本题时一个一维dp问题,我们先创建一个哈希表,如果num在这个哈希表里面,就把这个元素加一,然后返回最大得哈希值!!!

4.礼物的最大价值

本题也是一个dp问题,其实画一个矩阵是可以非常简单明了的,由于时间问题我就没有画了,大家可以自行脑部hhhhh,我们把矩阵的每个从左上角叠加的值计算出来,然后进行比较相加,然后返回右下角里面的那个值就可以。

代码

1.最小的k个数

class Solution:
    def getLeastNumbers(self, arr: List[int], k: int) -> List[int]:
        arr.sort()
        return arr[:k]

2.数组中出现次数超过数组长度一半的数

class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        d = {}
        for i in set(nums):
            d[i] = 0
        for i in nums:
            d[i] += 1
        for i in d:
            if d[i] > len(nums)//2:
                return i
            

3.最长差定子序列

class Solution:
    def longestSubsequence(self, arr: List[int], difference: int) -> int:
        d = defaultdict(int)
        for num in arr:
            d[num] = d[num - difference] + 1
        return max(d.values())

4.礼物的最大价值

class Solution:
    def maxValue(self, grid: List[List[int]]) -> int:
        m, n = len(grid), len(grid[0])
        for j in range(1, n): # 初始化第一行
            grid[0][j] += grid[0][j - 1]
        for i in range(1, m): # 初始化第一列
            grid[i][0] += grid[i - 1][0]
        for i in range(1, m):
            for j in range(1, n):
                grid[i][j] += max(grid[i][j - 1], grid[i - 1][j])
        return grid[-1][-1]

 

...全文
29 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,633

社区成员

发帖
与我相关
我的任务
社区描述
欢迎大家来到抱团内卷学习社区,在这里大家可以分享自己的学习笔记,求职心得,一起记录彼此的成长历程。社区群号:94108843,WX公众号:【兴趣使然的草帽路飞】
社区管理员
  • 路  飞
  • 一百个Chocolate
  • 灰小猿
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

最怕你一生碌碌无为,还安慰自己平凡可贵!

努力提高自己的知识储备,助力每一位冲刺大厂的小伙伴!

祝大家前程似锦,offer连连!

注意:每个月活跃积分最高的小伙伴,可以获得社区管理员权限哦!

试试用AI创作助手写篇文章吧