当前位置: 首页 > news >正文

Python 小白的 Leetcode Daily Challenge 刷题计划 - 20240209(除夕)

368. Largest Divisible Subset

难度:Medium

  • 动态规划 + 方案还原

Yesterday's Daily Challenge can be reduced to the problem of shortest path in an unweighted graph while today's daily challenge can be reduced to the problem of longest path in an unweighted graph.
Happy Chinese New Year!

class Solution:
    def largestDivisibleSubset(self, nums: list[int]) -> list[int]:
        n = len(nums)
        nums.sort()
        f, pre = [1]*n, [-1]*n
        t = 0
        for i in range(n):
            for j in range(i):
                if nums[i] % nums[j] == 0:
                    if f[j]+1 > f[i]:
                        f[i] = f[j]+1
                        pre[i] = j
                if f[i] > f[t]:
                    t = i
        ans = []
        while t != -1:
            ans.append(nums[t])
            t = pre[t]
        return ans

def test():
    samples = [[1,2,3],
               [1,2,4,8]]
    sol = Solution()
    for nums in samples:
        print(sol.largestDivisibleSubset(nums))

if __name__ == '__main__':
    test()

相关文章:

  • Leecode之环形链表进阶
  • 设计模式-行为型模式(下)
  • 【SpringBoot】Redis集中管理Session和自定义用户参数解决登录状态及校验问题
  • 工厂方法模式(Factory Method Pattern)
  • Qt 数据库操作V1.0
  • 2.6日学习打卡----初学RabbitMQ(一)
  • Python进阶:标准库
  • Qt未来市场洞察
  • 基于YOLOv8算法的照片角度分类项目实践
  • 单片机学习笔记---蜂鸣器工作原理
  • 发送get请求并且发送请求头(header),java实现
  • macbook电脑如何永久删除app软件?
  • 开发JSP应用程序
  • Unity3d Shader篇(五)— Phong片元高光反射着色器
  • 【回溯算法】 LCR 081. 组合总和
  • android 音频调试技巧
  • 米哈游(原神)终面算法原题
  • Flink从入门到实践(一):Flink入门、Flink部署
  • C++实现鼠标点击和获取鼠标位置(编译环境visual studio 2022)
  • SQL 表信息 | 统计 | 脚本
  • 深交所修订创业板指数编制方案,引入ESG负面剔除机制
  • 应急管理部派出工作组赴山西太原小区爆炸现场指导救援处置
  • 广东省副省长刘红兵任湖南省委常委、宣传部部长
  • 国务院安委会对辽宁辽阳一饭店重大火灾事故查处挂牌督办
  • 王毅会见泰国外长玛里:坚决有力打击电诈等跨境犯罪
  • 10台核电新机组获核准,上海核电厂商独揽超500亿元订单