五月刷题21——堆


今日刷题内容:

前言

  • 一个算法废材的刷题之路开更了, 更新每天刷题的题解内容
  • 注重个人理解,看难度更新题目数量
  • 题目来源于力扣
  • 新开专栏,争取每日都能做出至少一题=v=
  • 语言java、python、c\c++

一、今日题目

  1. 2099. 找到和最大的长度为 K 的子序列
  2. 1792. 最大平均通过率
  3. 1499. 满足不等式的最大值
  4. 2163. 删除元素后和的最小差值

二、解题思路

今天的题目只会做一题,太绝望了

1. 2099. 找到和最大的长度为 K 的子序列

  1. 使用一个辅助数组来记录每个元素的下标值
  2. 首先通过元素的值来降序排序
  3. 得到前k个元素,再通过下标来升序排序
  4. 返回结果前k个元素即可
class Solution:
    def maxSubsequence(self, nums: List[int], k: int) -> List[int]:
        n = len(nums)
        temp = [[i, nums[i]] for i in range(n)]
        # 按照元素降序排序
        temp.sort(key = lambda x: x[1], reverse = True)
        temp = sorted(temp[:k])  # 取前k个,并按元素下标排序
        ret = [temp[i][1] for i in range(k)]  # 返回目标数组
        return ret

2. 1792. 最大平均通过率

还不会做




3. 1499. 满足不等式的最大值

还不会做



4. 2163. 删除元素后和的最小差值

还不会做


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值