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

快速做网站关键词排名最火网站排名

快速做网站关键词排名,最火网站排名,玩具公司网站设计论文,青海网站建设公司多少钱题1: 指路:491. 非递减子序列 - 力扣(LeetCode) 思路与代码: 对于这个题我们应该想起我们做过的子集问题,就是在原来的问题上加一个去重操作。我们用unordered_set集合去重,集合中使用过的元…

题1:

指路:491. 非递减子序列 - 力扣(LeetCode)
思路与代码:

对于这个题我们应该想起我们做过的子集问题,就是在原来的问题上加一个去重操作。我们用unordered_set集合去重,集合中使用过的元素,我们要对结果集进行横向去重:集合中有的元素就已经被用过,弃之。代码如下:

class Solution {private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, int startIndex) {if (path.size() >= 2 && path.size() <= nums.size()) {result.push_back(path);}unordered_set<int> uset;  // 元素去重集合    for (int i = startIndex; i < nums.size(); i++) {if ((!path.empty() && nums[i] < path.back())|| uset.find(nums[i]) != uset.end())continue;uset.insert(nums[i]);path.push_back(nums[i]);backtracking(nums, i + 1);path.pop_back();  }}
public:vector<vector<int>> findSubsequences(vector<int>& nums) {backtracking(nums, 0);return result;}
};

题2:

指路:46. 全排列 - 力扣(LeetCode)
思路与代码:

排列与组合的不同点在于:组合无顺序,排列有顺序。例如:[1, 2, 3] 和[3, 2, 1],对于组合来说二者无区别,对于排列来说,二者有区别。所以这也是单层循环逻辑中的不同所在:我们每次从数组i = 0的地方开始遍历,如果遇到未遍历过的元素则加入路径集,反之如果是已经遍历过的元素则跳过本轮循环继而寻找下一元素。其中,我们用used数组来标识元素是否用过。初始化为false,用过则赋值为true。最终当路径集大小与原数组集相等时加入最终结果集。代码如下:

class Solution {private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, vector<bool> &used) {if (path.size() == nums.size()) {result.push_back(path);return ;}for (int i = 0; i < nums.size(); i++) {  // 0开始,全排列if (used[i] == true) continue;  // 用过的元素跳过,直接取下一个元素used[i] = true;path.push_back(nums[i]);backtracking(nums, used);used[i] = false;  // 回溯path.pop_back();}}
public:vector<vector<int>> permute(vector<int>& nums) {vector<bool> used(nums.size(), false);backtracking(nums, used);return result;}
};

题3:

指路:47. 全排列 II - 力扣(LeetCode)
思路与代码:

相似于上题排列,本题不同点在于有了重复元素,这就意味着会出现重复子序列,所以需要我们做的就是去重。相似于组合总和Ⅱ的去重操作。我们将数组排序得到一个升序数组,如果相邻两个元素相等时,只需要得到一个数的子序列即可。代码如下:

class Solution {private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, vector<bool>& used) {if (path.size() == nums.size()) {result.push_back(path);return ;}for (int i = 0; i < nums.size(); i++) {if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) continue;if (used[i]  == false) {used[i] = true;path.push_back(nums[i]);backtracking(nums, used);path.pop_back();used[i] = false;}}}
public:vector<vector<int>> permuteUnique(vector<int>& nums) {vector<bool> used (nums.size(), false);sort(nums.begin(), nums.end());backtracking(nums, used);return result;}
};

http://www.15wanjia.com/news/15626.html

相关文章:

  • 注册网站会有哪些风险蜜雪冰城推广软文
  • 六安政府网百度seo收费
  • 网站建设毕业论文网络营销的推广
  • wordpress注册邮箱设置seo搜索引擎优化实战
  • c 还可以做网站成都最新动态
  • 运动鞋网站建设目的企业品牌类网站有哪些
  • 香港访问大陆网站百度收录比较好的网站
  • 网站建设软文网站前期推广
  • 泰国做网站百度输入法下载
  • 网站开发要学java吗每日财经要闻
  • 专题探索网站开发教学模式的结构守游网络推广平台
  • 做网站的像素是多少钱网络营销品牌
  • 做一元购网站网站点击量软件
  • 美团网站界面设计一篇好的营销软文
  • 哪些网站可以加锚文本小程序开发公司
  • 自己设计logo的网站广东疫情最新消息今天
  • 做下载网站用阿里云的什么产品搜索关键词的方法
  • 免费下载代码的网站苏州seo免费咨询
  • 聊城市住房和城乡建设局网站app开发制作
  • 织梦英文版网站怎么做国外搜索引擎优化
  • 怎么做竞拍网站引流推广效果好的app
  • 深圳市建设工程网站免费加客源
  • linux建设门户网站站长工具大全
  • 东莞高端网站建设费用网络服务电话
  • 关于网站开发市问卷调查成都私人网站制作
  • 企业门户网站管理办法广告平台推广渠道
  • 做移动网站建设谷歌推广怎么做
  • 手工艺品网站建设企业网站seo多少钱
  • 文章类网站选什么内容许昌网络推广公司
  • 新疆做网站的公司排名优化网站服务