原题链接:https://leetcode-cn.com/problems/largest-divisible-subset/

首先给数组排序,然后用动态规划

dp[i]表示以nums[i]结尾的序列最大长度
last[i]表示在最大序列中 nums[i]的上一个元素在nums出现的下标

于是有状态转移:

dp[i]=max(dp[i],dp[j]+1)
last[i] = j

这里dp[i]保存的只是长度,因为如果每次都保留完整的数组,这个空间复杂度比较大,所以最后再回溯出数组即可。

vector<int> largestDivisibleSubset(vector<int>& nums) {int n = nums.size(),mx = 0,end = -1;vector<int> dp(n,1),last(n,-1),res;sort(nums.begin(),nums.end());for(int i = 0;i<n;i++){for(int j = 0;j<i;j++){if(nums[i]%nums[j] == 0 && dp[i]<=dp[j]){dp[i] = dp[j]+1;last[i] = j;}}if(dp[i]>mx){mx = dp[i];end = i;}}for(int i = end;i!=-1;i = last[i]){//倒序输出res.push_back(nums[i]);}return res;
}

leetcode算法题--最大整除子集相关推荐

  1. LeetCode算法题整理(200题左右)

    目录 前言 一.树(17) 1.1.后序遍历 1.2.层次遍历 1.3.中序 1.4.前序 二.回溯(20) 2.1.普通回溯 2.2.线性回溯:组合.排列.子集.分割 2.3.矩阵回溯 三.二分查找 ...

  2. LeetCode算法题-Nth Digit(Java实现)

    这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...

  3. LeetCode算法题-Reverse Linked List(Java实现)

    这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...

  4. LeetCode算法题-Convert a Number to Hexadecimal(Java实现)

    这是悦乐书的第219次更新,第231篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405).给定一个整数,写一个算法将其转换为十六进制.对于负整数,使 ...

  5. leetcode算法题--零钱兑换

    原题链接:https://leetcode-cn.com/problems/coin-change/ 相关题目:leetcode算法题–完全平方数★ 动态规划 dp[i] i从0到amount,dp[ ...

  6. leetcode算法题-- 买卖股票的最佳时机

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 这类股票题目请见leetcode算法题–最佳买卖股票时机含 ...

  7. leetcode算法题--买卖股票的最佳时机 II

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 这类股票题目请见leetcode算法题–最佳买卖股票 ...

  8. leetcode算法题--买卖股票的最佳时机含手续费

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 这类股票题目请见 ...

  9. leetcode算法题--完全平方数★

    原题链接:https://leetcode-cn.com/problems/perfect-squares/ 相关题目:leetcode算法题–零钱兑换 1.回溯法 就是暴力法,套路就是递归,但是有很 ...

最新文章

  1. python 多线程日志切割+日志分析
  2. Ubuntu 14.04环境变量修改
  3. java内部错误2755_内部错误2755.(安装软件出问题啦)
  4. HTML5 学习手笔二:canvas API 绘制树形图案A
  5. [转载] Java中Runtime的使用
  6. 聊一聊 java8 中的 Optional
  7. 无法打开、创建WEB项目,VS2003有寄生性?
  8. Dubbo场景场景配置用法详解
  9. C++---智能指针原理讲解
  10. First of all, let’s talk about the richest man in Japan
  11. ipad文件管理怎么添加服务器,ipad怎样建文件夹
  12. 生产者消费者模型(自己上锁与阻塞队列两版本)
  13. jconsole是否可以在生产环境使用_使用JCONSOLE远程监控JVM
  14. 没有域名能不能申请企业邮箱?
  15. 理解HTC Vive更新——控制相机旋转和位移
  16. 【数据库作业10】用SQL语句来表示关系代数中的表达式
  17. 设置PPT幻灯版自动翻页播放
  18. 西门子数控机床如何用FTP进行程序传输
  19. 信用卡如何使用?广发卡自动分期教你这样养卡技巧
  20. 华为云电脑+teamviewer ssh实现手机远程操控服务器

热门文章

  1. 机器人编程语言python-10大热门机器人编程语言,你掌握了哪种?
  2. python在读写文件之前需要创建文件对象-python读取或写入文件
  3. 怎么自学python自动化测试-学习自动化测试,如何学习Python语言?
  4. python xpath语法-Python xpath表达式如何实现数据处理
  5. python语音在线编辑-Python如何实现文本转语音
  6. python的用途实例-python assert的用处示例详解
  7. 查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
  8. redis中的hash
  9. mysql中的触发器
  10. Cookie/Session机制详解--如何区分不同用户