这篇page是针对leetcode上的491.递增子序列所写的。小尼先简单的说明一下这道题的意思,首先就是给出一个整数数组nums,找出并且返回所有改数组中不同的递增子序列,要求是子序列中至少有两个元素。

小尼先跟大家简单的分析一下这道题,其实这道题的思路并不复杂,首先给出的数组是有顺序的,然后给出的数组只需要写出递增的数组。小倪先拉一下代码:

class Solution {private List<Integer> path = new ArrayList<>();private List<List<Integer>> res = new ArrayList<>();public List<List<Integer>> findSubsequences(int[] nums) {backtracking(nums,0);return res;}private void backtracking (int[] nums, int start) {if (path.size() > 1) {res.add(new ArrayList<>(path));}int[] used = new int[201];for (int i = start; i < nums.length; i++) {if (!path.isEmpty() && nums[i] < path.get(path.size() - 1) ||(used[nums[i] + 100] == 1)) continue;used[nums[i] + 100] = 1;path.add(nums[i]);backtracking(nums, i + 1);path.remove(path.size() - 1);}}
}

小尼对上面的代码做一下解释,首先就是我们int了一个used数组,然后我们写了这一句判断:

if (!path.isEmpty() && nums[i] < path.get(path.size() - 1) || (used[nums[i] + 100] == 1)) continue;

也就是说如果此时数组中的元素的值不为空,并且此时的值如果小于我们加入了path里面的此时最后一数的值,那么我们直接跳过这一层循环,直接进入下一层循环,然后们标记此时的used中对应的数值为1,小尼在这里简单的说明一下used数组的作用,起始就是我们的每一个元素座位开头字母使用的时候我们都只能使用一次,所以我们这里写了一个额外的数组以便来进行比较我们的开头的数组是否重复,当我们遇到了重复的元素我们就直接跳过。

希望小伙伴可以得到帮助

My Fifty-Seventh Page 递增子序列 - By Nicolas相关推荐

  1. My Ninetieth Page - 最长递增子序列 - By Nicolas

    这篇page是针对leetcode上的300.最长递增子序列所写的.小尼先简单的说明一下这道题的意思,给定一个整数数组nums,我们需要找到其中最长严格递增子序列的长度.其中子序列是由数组派生而来的序 ...

  2. My Seventh Page - 设计链表 - By Nicolas

    这一篇page对应的是leetcode上面707.设计链表这个题目,首先这个题目的描述还是比较简单的,就是我们可以选择使用单链表或者双链表实现链表对应的增删改查的许多功能.小尼这个题目大部分都是看的题 ...

  3. 经典dp最长递增子序列

    经典dp最大递增子序列,  看了好长时间,看了好多版本.最终因为这个看懂,也觉得这个是最全面的吧,我感觉我好菜啊. http://wenku.baidu.com/view/bed07b15552707 ...

  4. 最长递增子序列的两种解法

    以LeetCode-300为例: O(n^2)解法: dp数组表示以i结尾的最长递增子序列的长度 class Solution { public:int lengthOfLIS(vector<i ...

  5. 最长递增子序列问题的求解

    一, 最长递增子序列问题的描述 设L=<a1,a2,-,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,-,akm>,其中k1<k2 ...

  6. NYOJ 单调递增子序列(二)

    单调递增子序列(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序 ...

  7. 编程之美2.16 最长递增子序列

          这道题目要求返回一个数字,这个数字代表一个数组中最长的递增子序列,当然,不要求这个序列是连续的,比如,有这样一个数组:{1, 3,5,7, 2, 9},那么这个数组的最长递增子序列就是5, ...

  8. 5-3 最长连续递增子序列 (20分)

    5-3 最长连续递增子序列 (20分) 给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列.例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8 ...

  9. 洛谷P2766-最长递增子序列问题

    chunlvxiong的博客 题目描述: 给定正整数序列x1,...,xn (1≤n≤500). 1.计算其最长递增子序列的长度s. 2.计算从给定的序列中最多可取出多少个长度为s的递增子序列. 3. ...

  10. 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离

    最大子序列 最大子序列是要找出由数组成的一维数组中和最大的连续子序列.比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大:而 {5,-6,4,2}的最大子序列是{4, ...

最新文章

  1. 保监会:《保险公司信息系统安全管理指引(试行)》
  2. PAT甲级1101 Quick Sort:[C++题解]DP、快速排序划分个数、快排
  3. 近世代数--群--怎么判断是不是群?
  4. Aupera:FPGA让视频编码与AI结合水到渠成
  5. mysql 数据库 额外_mysql – 拥有“额外”数据库查询有多糟糕?
  6. 10年嵌入式工程师经验之谈:对于研发工作的感悟
  7. 接收请求参数及数据回显 2021-04-26
  8. 1.1浅谈Spring(一个叫春的框架)
  9. php创建目录规则,php创建目录功能
  10. Sm快递柜-给图片设置点击下去颜色变深
  11. Atitit 档案学 档案管理 attilax学习总结
  12. 微信分享appID注册一次后即绑定该应用?
  13. Intrinsics函数Tips与踩坑
  14. 【飞书集成自建应用教程】
  15. Java - JIT即时编译器
  16. 网站设计系列:网站易用性
  17. EOJ Contest61 2018研究生面试机考(软件工程)个人题解
  18. 【晶振不起振原因分析】
  19. linux网卡驱动更新方法
  20. ArchLinux安装完成登陆时出现login incorrect错误

热门文章

  1. 做php外包常用的框架
  2. 需求通信相关技术人才
  3. 怎样让计算机快速开机,怎样快速设置电脑定时自动开机
  4. win7虚拟机iOS坑爹法语键盘冲突解决方法
  5. 启发式搜索(heuristic search)———A*算法
  6. LibPcap经常丢包怎么办?
  7. ISA防火墙策略配置以及服务器的发布
  8. Chrome保存整个网页为图片(终极解决方案!)
  9. 子域名劫持漏洞详解、挖掘和防护
  10. 第三代USRP 产品对比