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

厦门响应式网站制作百度首页关键词优化

厦门响应式网站制作,百度首页关键词优化,资讯网站建设,大型大型网站建设方案ppt模板1.全排列 全排列 II 1.给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 2.给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,2,3…

1.全排列 + 全排列 II

1.给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

2.给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。

示例 1:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]
输出:[[1]]

提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10

分析:是回溯的全排列类型,刚开始写的时候传参传的不是used的地址,所以used里面持续是0

#include <bits/stdc++.h>
using namespace std;
vector<int> nums;
vector<int> path;
vector<bool> used(nums.size(),false);
void f(vector<int> nums,vector<bool> &used)
{if(nums.size()==path.size()){for(int i=0;i<path.size();i++) cout<<path[i]<<" ";cout<<endl;return;}for(int i=0;i<nums.size();i++){if(used[i] == true) continue;used[i]=true;path.push_back(nums[i]);f(nums,used);path.pop_back();used[i]=false;}
}
main()
{int x;while(cin>>x){nums.push_back(x);}f(nums,used);
}

 分析:这个剪枝不是很好理解,if(nums[i]==nums[i-1] && used[i-1] == false) continue;这里是对同一层进行剪枝,同一层表示的是同一个位置,如果这个位置上的数重复了,那我们就直接continue

#include <bits/stdc++.h>
using namespace std;
vector<int> nums;
vector<int> path;
vector<bool> used(nums.size(),false);
void f(vector<int> nums,vector<bool> &used)
{if(nums.size()==path.size()){for(int i=0; i<path.size(); i++) cout<<path[i]<<" ";cout<<endl;return;}for(int i=0; i<nums.size(); i++){if(nums[i]==nums[i-1] && used[i-1] == false) continue;if(used[i]==false){used[i]=true;path.push_back(nums[i]);f(nums,used);path.pop_back();used[i]=false;}}
}
main()
{int x;while(cin>>x){nums.push_back(x);}sort(nums.begin(),nums.end());f(nums,used);
}

2.组合

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

你可以按 任何顺序 返回答案。

示例 1:

输入:n = 4, k = 2
输出:
[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],
]

示例 2:

输入:n = 1, k = 1
输出:[[1]]

提示:

  • 1 <= n <= 20
  • 1 <= k <= n

分析: 这个在我看来属于回溯的组合型,我打算用组合型来做

#include <bits/stdc++.h>
using namespace std;
vector<int> path;
int num[21];
int n,k;
void f(int n)
{int i,j;int d=k-path.size();if(path.size()==k){for(i=0;i<k;i++)cout<<path[i]<<" ";cout<<endl;return;}for(j=n;j>d-1;j--){path.push_back(j);f(j-1);path.pop_back();}
}
main()
{cin>>n>>k;f(n);
}

3.子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

示例 1:

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

示例 2:

输入:nums = [0]
输出:[[],[0]]

提示:

  • 1 <= nums.length <= 10
  • -10 <= nums[i] <= 10
  • nums 中的所有元素 互不相同

分析:这个用选和不选的类型来做思路就比较清晰了

#include <bits/stdc++.h>
using namespace std;
vector<int> path;
int num[21],n;
void f(int i,int index)
{if(i==n){for(int j=0; j<index; j++) cout<<path[j]<<" ";cout<<endl;return;}f(i+1,index);path.push_back(num[i]);f(i+1,index+1);path.pop_back();
}
main()
{int x,i=0;while(cin>>x){num[i]=x;i++;}n=i;f(0,0);
}
http://www.yidumall.com/news/58716.html

相关文章:

  • 徐州网站建设案例百度竞价推广代理商
  • wordpress蘑菇街seo排名优化怎样
  • 中国移动网站上海网站seo快速排名
  • 信息平台网站的建设 文档2345网止导航
  • 没有网站可以做百度推广吗微信管理工具
  • 柳州网站建设网页设计与网站开发
  • 做外卖有哪些网站有哪些临沂今日头条新闻最新
  • 网站导航三角怎么做百度收录时间
  • 工商局网站清算组备案怎么做百度推广怎么收费标准
  • mysql做镜像网站哪个推广平台推广最靠谱
  • wordpress可以添加字段吗seo优化入门教程
  • 网页升级访问自动太原百度推广排名优化
  • 商城网站建设咨询seo是什么意思为什么要做seo
  • 装修设计图免费软件西安市seo排名按天优化
  • 做文员的网站知乎网络营销策划推广公司
  • 诚信档案建设网站首页seo经验
  • 远涛网站建设百度一下app下载安装
  • 兰州新增疫情最新消息seo基础知识包括什么
  • wordpress 无法编辑主题杭州seo搜索引擎优化公司
  • java网站开发经验网站构建的基本流程
  • 做设计英文网站现在最好的营销方式
  • 山西建站管理系统开发360免费建站官网
  • iis 新建网站没有文件夹权限seo入门基础教程
  • 3dweb做的网站磁力蜘蛛
  • 基于java的视频网站开发小程序开发公司排行榜
  • 动易政府网站模板河南自助建站seo公司
  • 宣城有木有专业做网站的刷网站软件
  • 电子商务网站建设技术规范线上宣传方式
  • 棋牌网站哪里做网页设计制作网站代码
  • 赣州做网站设计找哪家百度 seo优化作用