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

优秀网站建设官网最新网站推广哪家好

优秀网站建设官网,最新网站推广哪家好,做量化投资网站,北京做网站哪家公司最好78.子集 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出:[[],[1],[2],[1…

78.子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
示例 1:
输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

import java.util.ArrayList;
import java.util.List;class Solution {private List<Integer> path = new ArrayList<>();private List<List<Integer>> res = new ArrayList<>();public List<List<Integer>> subsets(int[] nums) {backTrace(nums, 0);return res;}private void backTrace(int[] nums, int start) {res.add(new ArrayList<>(path));if (start >= nums.length) {return;}for (int i = start; i < nums.length; i++) {path.add(nums[i]);backTrace(nums, i + 1);path.remove(path.size() - 1);}}
}

90.子集II

给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。
示例 1:
输入:nums = [1,2,2]
输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;class Solution {private List<Integer> path = new ArrayList<>();private List<List<Integer>> res = new ArrayList<>();public List<List<Integer>> subsetsWithDup(int[] nums) {Arrays.sort(nums);backTrace(nums, 0);return res;}private void backTrace(int[] nums, int start) {res.add(new ArrayList<>(path));if (start == nums.length) {return;}for (int i = start; i < nums.length; i++) {if (i > start && nums[i] == nums[i - 1]) {continue;}path.add(nums[i]);backTrace(nums, i + 1);path.remove(path.size() - 1);}}
}

去重需要先对数组进行排序,可别忘记了!!!
这里要求有重复元素的集合,同一个树层上的元素不能重复,同一个树枝(上下)上可以取重复

491.递增子序列

给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。
数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。
示例 1:
输入:nums = [4,6,7,7]
输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]
示例 2:
输入:nums = [4,4,3,2,1]
输出:[[4,4]]

class Solution {public List<List<Integer>> findSubsequences(int[] nums) {backTracing(nums, 0);return res;}private List<Integer> path = new ArrayList<>();private List<List<Integer>> res = new ArrayList<>();private void backTracing(int[] nums, int start) {if (path.size() > 1) {res.add(new ArrayList<>(path));}if (start == nums.length) {return;}Map<Integer, Integer> map = new TreeMap<>();for (int i = start; i < nums.length; i++) {if ((path.size() > 0 && nums[i] < path.get(path.size() - 1)) || map.containsKey(nums[i])) {continue;}map.put(nums[i], 0);path.add(nums[i]);backTracing(nums, i + 1);path.remove(path.size() - 1);}}
}

注意这道题不可以进行排序,子集问题又需要去重,以前的排列之后判断是不是和前一个相同的逻辑不适用了,这里每层用一个map记录数组中的元素是不是出现过,出现过的不再使用,并且要保证递增序列,在每个元素放进path的时候和path中的最后一个元素比较,小就不再进行递归了,这一枝截断!

http://www.yayakq.cn/news/198121/

相关文章:

  • 营销网站试用瑞安公司网站建设
  • 网页设计网站开发需要哪些知识做ppt的图片网站
  • 知名的摄影网站有哪些四川电商推广公司
  • 医院病房建设网站网站策划书需求分析
  • 站长网站素材html网站开发实用技术
  • 建设工程消防网站进入程序店铺设计软件
  • 黄石企业网站建设三明建设局网站
  • 公司的网站建设与维护论文珠海集团网站建设报价
  • 企业网站能个人备案吗厦门app网站设计
  • 网站后台批量上传图片网站建设规划方案模板
  • 聊城哪里可以学网站建设呢网站互动交流怎么做
  • 苏州建站公司哪个好鞍山58同城找工作 招聘
  • 做商品网站的教学视频大岭山网站
  • 0592 网站建设不用fash做的视频网站
  • 网站内容导出北京网站建设方案开发公司
  • 上海交通大学毕业设计网站中国建设银行积分网站
  • 提供建立网站服务的公司做cms网站步骤
  • 青岛网站优化快速排名如何在工商局网站上做网登
  • 策划类网站动漫设计与制作培训
  • 温州网站设计平台手机网站制作公司选哪家
  • 西大路网站建设公司南宁网站建设超博网络
  • 定兴县住房和城乡建设局网站网站访问量过大
  • 江苏省住房和城乡建设局网站首页深圳高端网站制作费用
  • 南宁市网站开发网站建设项目体会
  • 如何对网站进行管理百度优化大师
  • 有没有专门做特产的网站网站后台更新没有变化
  • 爱站网seo工具包外贸网站制作哪家好
  • 孝感个人网站建设软件安卓下载
  • 百度输入法下载网站整站优化
  • 临沂网站公众号建设wordpress主题akina