当前位置: 首页 > 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 表信息 | 统计 | 脚本
  • 做僾网站/做网销的一天都在干嘛
  • 安徽人/黑帽seo技术论坛
  • 企业速成网站/seo流量是什么
  • 网站新闻标题标题怎样进行优化/seo3的空间构型
  • 网站 开发 外包/福州模板建站哪家好
  • 张家港企业网站设计/seo投放营销