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

东莞商城网站建设北京建站开发

东莞商城网站建设,北京建站开发,网站页尾内容,网站开发用什么语言比较好491.非递减子序列 思路:这道题最开始的时候,我想到两个问题:一个是如何维持递增的序列,一个是如何去重,写了一版代码,用的前面的去重方法,但是遇到一个case始终过不了,[1,2,3,4,5,6,…

491.非递减子序列

思路:这道题最开始的时候,我想到两个问题:一个是如何维持递增的序列,一个是如何去重,写了一版代码,用的前面的去重方法,但是遇到一个case始终过不了,[1,2,3,4,5,6,7,8,9,10,1,1,1,1,1],肯定是过不了的,因为其不是一个有序序列,并且必须保持其原本的大小顺序,故这道题只能使用哈希表来去重,这道题其实力扣上面还有点小坑,就是他给的两个示例特么都是排序的,但是题目又没提,误导人

错误的思考:

class Solution {
public:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums,int index,vector<bool>& used){if(path.size()>=2){result.push_back(path);}if(index>=nums.size()){return;}for(int i=index;i<nums.size();++i){if(!path.empty() && path.back()>nums[i]) continue;if(i>0&& nums[i-1]==nums[i]&& used[i-1]==false)continue;path.push_back(nums[i]);used[i]=true;backtracking(nums,i+1,used);used[i]=false;path.pop_back();}}vector<vector<int>> findSubsequences(vector<int>& nums) {result.clear();path.clear();vector<bool> used(nums.size(),false);backtracking(nums,0,used);return result;}
};

正确写法:

又学会一种新的去重同一层的方法!

class Solution {
public:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums,int index){if(path.size()>=2){result.push_back(path);}if(index>=nums.size()){return;}unordered_set<int> myset;for(int i=index;i<nums.size();++i){if((!path.empty() && nums[i]<path.back())||myset.find(nums[i])!=myset.end()) continue;myset.insert(nums[i]);path.push_back(nums[i]);backtracking(nums,i+1);path.pop_back();}}vector<vector<int>> findSubsequences(vector<int>& nums) {result.clear();path.clear();backtracking(nums,0);return result;}
};

46.全排列

思路:第一次接触全排列的问题,体会其与组合,分割问题的不同之处!

class Solution {
public: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(used[i]==true) continue;used[i]=true;path.push_back(nums[i]);backtracking(nums,used);used[i]=false;path.pop_back();}}vector<vector<int>> permute(vector<int>& nums) {result.clear();path.clear();vector<bool> used(nums.size(),false);backtracking(nums,used);return result;}
};

47.全排列II

思路:这道题就是把前两道题的技巧结合起来了!其这道题可以用used这个数组直接进行去重,其实对于排列问题使用的used数组就是用来标记当前是否使用过的!

class Solution {
public: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;}unordered_set<int> myset;for(int i=0;i<nums.size();++i){if(used[i]==true||myset.find(nums[i])!=myset.end()) continue;myset.insert(nums[i]);used[i]=true;path.push_back(nums[i]);backtracking(nums,used);used[i]=false;path.pop_back();}}vector<vector<int>> permuteUnique(vector<int>& nums) {result.clear();path.clear();vector<bool> used(nums.size(),false);backtracking(nums,used);return result;}
};
http://www.yayakq.cn/news/527561/

相关文章:

  • 有了网站源码可以做网站吗贪玩传奇手游官方网站
  • 学校营销型网站建设app系统开发费用
  • 网站建设comfree theme wordpress
  • 做网站的多少钱微网站和小程序的区别
  • 阳江商城网站开发设计青岛企业建设网站公司
  • 小说网站开发中遇到的问题玉溪做网站
  • 宁志网站两学一做培训网站模板
  • 网站顶部广告图片河北建设网站公司
  • 济南高端网站建设郑州免费网络推广
  • 淄博网站关键字优化百度精准推广
  • discuz论坛建站教程手机网站 设计图
  • 用html做班级网站搭建本地网站做色流
  • 佛山网站建设公司如何组建wordpress 搜索排除
  • 济南企业如何建网站wordpress 好用吗
  • 房产信息网站系统自己开个公司要多少钱
  • 做办公设备网站网站建设的后如何发布
  • 医院做网站运维文化馆网站建设解决方案
  • 已有的网站如何做排名优化网站建设开发合同范本
  • 苏州网站排名方案微信表情开放平台
  • 商水建设局网站网页qq属于
  • 海口省建设厅网站如何提高网站用户体验
  • 天津中小企业网站制作市桥网站建设培训学校
  • 信阳网站建设哪家好分类信息网址
  • 朋友圈网站文章怎么做网站备案被取消
  • 做网站用Linux还是win网络营销策略主要包括
  • 网站开发市场现在怎么样哪些网站做的海报比较高大上
  • 给网站设置长尾关键词WORDPRESS添加前台会员注册
  • 海安网站建设公司昭阳区住房和城乡建设管理局网站
  • 网站建设说明书乐华网络公司介绍
  • 我想自己做网站如何查网站备案号