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

上海个人网站制作公司电商运营是销售吗

上海个人网站制作公司,电商运营是销售吗,关注网站制作,襄阳商城网站建设✨✨✨学习的道路很枯燥#xff0c;希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 排列、子集问题 1.1 全排列I 1.2 子集I 1.3 找出所有子集的异或总和 1.4 全排列II 1.5 字母大小写全排列 1.6 优美的排列 二 组合问题 2.1 电话号码的数字组合 … ✨✨✨学习的道路很枯燥希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一  排列、子集问题 1.1  全排列I 1.2  子集I  1.3  找出所有子集的异或总和 1.4  全排列II 1.5  字母大小写全排列 1.6  优美的排列 二  组合问题  2.1  电话号码的数字组合 2.2  括号生成 2.3  组合  2.4  目标和 2.5  组合总和 三  矩阵搜索问题 3.1  N皇后  3.2  有效的数独 3.3  解数独  3.4  单词搜素 3.5  黄金矿工 3.6  不同路径III 总结 前言 本篇详细介绍了进一步介绍DFS让使用者对DFS有更加深刻的认知而不是仅仅停留在表面更好的模拟为了更好的使用. 文章可能出现错误如有请在评论区指正让我们一起交流共同进步 我们在做DFS的题目时首先要把决策树通过策略把结果不重不漏的枚举得到画下缕清思路设计代码自然水到渠成 一  排列、子集问题 1.1  全排列I 46. 全排列 - 力扣LeetCode class Solution {vectorvectorint ret;vectorint path;bool check[7]; public:vectorvectorint permute(vectorint nums) {dfs(nums);return ret;}void dfs(vectorint nums){if(path.size() nums.size()){ret.push_back(path);return;}for(int i 0;inums.size();i){if(check[i] false){path.push_back(nums[i]);check[i] true;dfs(nums);//回溯- 恢复现场path.pop_back();check[i] false;}}} }; 1.2  子集I  78. 子集 - 力扣LeetCode 解法一 class Solution {vectorvectorint ret;vectorint path; public:vectorvectorint subsets(vectorint nums) {dfs(nums,0);return ret;}void dfs(vectorint nums,int n){if(n nums.size()){ret.push_back(path);return;}//选path.push_back(nums[n]);dfs(nums,n1);path.pop_back();//不选dfs(nums,n1);} }; 解法二 class Solution {vectorvectorint ret;vectorint path; public:vectorvectorint subsets(vectorint nums) {dfs(nums,0);return ret;}void dfs(vectorint nums,int pos){ret.push_back(path);for(int i pos;inums.size();i){path.push_back(nums[i]);dfs(nums,i1);path.pop_back();}} }; 1.3  找出所有子集的异或总和 1863. 找出所有子集的异或总和再求和 - 力扣LeetCode class Solution {int sum;int path; public:int subsetXORSum(vectorint nums) {dfs(nums,0);return sum;}void dfs(vectorint nums,int pos){sum path;for(int i pos;inums.size();i){path^nums[i];dfs(nums,i1);path^nums[i]; }} }; 1.4  全排列II 47. 全排列 II - 力扣LeetCode class Solution {vectorvectorint ret;vectorint path;bool check[9]; public:vectorvectorint permuteUnique(vectorint nums) {sort(nums.begin(),nums.end());dfs(nums);return ret;}void dfs(vectorint nums){if(path.size() nums.size()){ret.push_back(path);return;}for(int i 0;inums.size();i){if(check[i] false (i0 || nums[i] ! nums[i-1] ||check[i-1] true)){path.push_back(nums[i]);check[i] true;dfs(nums);path.pop_back();check[i] false;}}} }; 1.5  字母大小写全排列 784. 字母大小写全排列 - 力扣LeetCode class Solution {vectorstring ret;string path; public:vectorstring letterCasePermutation(string s) {dfs(s,0);return ret;}void dfs(string s,int pos){if(pos s.size()){ret.push_back(path);return;}char ch s[pos];//不改变path ch;dfs(s,pos1);path.pop_back();//改变if(ch0 || ch9){char tmp change(ch);path tmp;dfs(s,pos1);path.pop_back();}}char change(char ch){if(chachz) ch-32;else ch32;return ch;} }; 1.6  优美的排列 526. 优美的排列 - 力扣LeetCode class Solution {bool check[16];int ret; public:int countArrangement(int n) {dfs(n,1);return ret;}void dfs(int n, int pos){if(pos n1){ret;return;}for(int i 1; in;i){if(check[i] false(i % pos 0 || pos % i 0)){check[i] true;dfs(n,pos1);check[i] false;}}} }; 二  组合问题  2.1  电话号码的数字组合 17. 电话号码的字母组合 - 力扣LeetCode class Solution {string path;vectorstring ret;vectorstring hash {,,abc,def,ghi,jkl,mno,pqrs,tuv,wxyz}; public:vectorstring letterCombinations(string digits) {if(digits.size() 0) return ret;dfs(digits,0);return ret;}void dfs(string digits,int pos){if(pos digits.size()){ret.push_back(path);return;}for(auto ch : hash[digits[pos] - 0]){path.push_back(ch);dfs(digits,pos1);path.pop_back();}} }; 2.2  括号生成 22. 括号生成 - 力扣LeetCode class Solution {vectorstring ret;string path;int count; //记录有效括号的对数 public:vectorstring generateParenthesis(int n) {count n;dfs(0,0);return ret;}void dfs(int left,int right){if(path.size() 2*count){ret.push_back(path);return;}if(leftcount){path.push_back(();dfs(left1,right);path.pop_back();}if(rightleft){path.push_back());dfs(left,right1);path.pop_back();}} }; 2.3  组合  77. 组合 - 力扣LeetCode class Solution {vectorvectorint ret;vectorint path;int n, k; public:vectorvectorint combine(int _n, int _k) {n _n;k _k;dfs(1);return ret;}void dfs(int pos){if(path.size() k){ret.push_back(path);return;}for(int i pos; in; i){path.push_back(i);dfs(i1);path.pop_back();}} }; 2.4  目标和 494. 目标和 - 力扣LeetCode class Solution {int ret;int target; public:int findTargetSumWays(vectorint nums, int _target) {target _target;dfs(nums,0,0);return ret;}void dfs(vectorint nums, int pos, int prev){if(pos nums.size()){if(prev target)ret;return;}dfs(nums,pos1,prevnums[pos]);dfs(nums,pos1,prev-nums[pos]);} }; 2.5  组合总和 39. 组合总和 - 力扣LeetCode 解法一 class Solution {vectorvectorint ret;vectorint path;int target; public:vectorvectorint combinationSum(vectorint candidates, int _target) {target _target;dfs(candidates,0,0);return ret;}void dfs(vectorint candidates,int sum, int pos){if(sumtarget) return;if(sum target){ret.push_back(path);return;}for(int i pos;icandidates.size();i){path.push_back(candidates[i]);dfs(candidates,sumcandidates[i],i);path.pop_back();}} }; 解法二 class Solution {vectorvectorint ret;vectorint path;int target; public:vectorvectorint combinationSum(vectorint candidates, int _target) {target _target;dfs(candidates,0,0);return ret;}void dfs(vectorint candidates,int sum, int pos){if(sum target){ret.push_back(path);return;}if(sumtarget || pos candidates.size()) return;for(int k 0;k*candidates[pos]sumtarget;k){if(k) path.push_back(candidates[pos]);dfs(candidates,sumk*candidates[pos],pos1);}for(int k 1;k*candidates[pos]sumtarget;k){path.pop_back();}} }; 三  矩阵搜索问题 3.1  N皇后  51. N 皇后 - 力扣LeetCode class Solution {bool checkCol[10], checkDig1[20], checkDig2[20];vectorvectorstring ret;vectorstring path; public:vectorvectorstring solveNQueens(int n) {path.resize(n);for(int i 0;in;i)path[i].append(n,.);dfs(n,0);return ret;}void dfs(int n, int row){if(row n){ret.push_back(path);return;}for(int col 0;coln;col){if(!checkCol[col]!checkDig1[row-coln]!checkDig2[rowcol]){path[row][col] Q;checkCol[col] checkDig1[row-coln] checkDig2[rowcol] true;dfs(n,row1);path[row][col] .;checkCol[col] checkDig1[row-coln] checkDig2[rowcol] false;}}} }; 3.2  有效的数独 36. 有效的数独 - 力扣LeetCode class Solution {bool row[9][10];bool col[9][10];bool grid[3][3][10]; public:bool isValidSudoku(vectorvectorchar board) {for(int i 0;i9;i){for(int j 0;j9;j){if(board[i][j] ! .){int num board[i][j] -0;if(row[i][num] || col[j][num] || grid[i/3][j/3][num])return false;row[i][num] col[j][num] grid[i/3][j/3][num] true;}}}return true;} }; 3.3  解数独  37. 解数独 - 力扣LeetCode class Solution {bool row[9][10];bool col[9][10];bool grid[3][3][10]; public:void solveSudoku(vectorvectorchar board) {for(int i 0;i9;i){for(int j 0;j9;j){if(board[i][j] ! .){int num board[i][j] -0;row[i][num] col[j][num] grid[i/3][j/3][num] true;}}}dfs(board);}bool dfs(vectorvectorchar board){for(int i 0;i9;i){for(int j 0;j9;j){if(board[i][j] .){for(int num 1; num9; num){if(!row[i][num]!col[j][num]!grid[i/3][j/3][num]){board[i][j] num 0;row[i][num] col[j][num] grid[i/3][j/3][num] true;if(dfs(board) true) return true; //判断当前所填的数是否有效board[i][j] .;row[i][num] col[j][num] grid[i/3][j/3][num] false;}}return false; //无法填数时则说明之前的填的数错误返回错误}}}return true;} }; 3.4  单词搜素 79. 单词搜索 - 力扣LeetCode class Solution {bool vis[7][7];int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0};int m,n; public:bool exist(vectorvectorchar board, string word) {m board.size(),n board[0].size();for(int i 0;im;i){for(int j 0;jn;j){if(board[i][j] word[0]){vis[i][j] true;if(dfs(board,word,i,j,1)) return true;vis[i][j] false;}}}return false;}bool dfs(vectorvectorchar board, string word,int i,int j,int pos){if(pos word.size()) return true;for(int k 0;k4;k){int x i dx[k],y j dy[k];if(x 0 x m y 0 y n !vis[x][y] board[x][y] word[pos]){vis[x][y] true;if(dfs(board,word,x,y,pos1)) return true;vis[x][y] false;}}return false;} }; 3.5  黄金矿工 1219. 黄金矿工 - 力扣LeetCode 本题的算法原理和单词搜索同只不过多了一两个变量 class Solution {bool vis[16][16];int dx [4] {0,0,1,-1};int dy [4] {1,-1,0,0};int m,n,path,ret; public:int getMaximumGold(vectorvectorint grid) {m grid.size(),n grid[0].size();for(int i 0;im;i){for(int j 0;jn;j){if(grid[i][j] ! 0){vis[i][j] true;dfs(grid,i,j,grid[i][j]);vis[i][j] false;}}}return ret;}void dfs(vectorvectorint grid,int i,int j,int path){ret max(ret,path);for(int k 0; k 4; k){int x i dx[k], y j dy[k];if(x 0 x m y 0 y n !vis[x][y] grid[x][y] ! 0){vis[x][y] true;dfs(grid,x,y,pathgrid[x][y]);vis[x][y] false;}}} }; 3.6  不同路径III 980. 不同路径 III - 力扣LeetCode class Solution {bool vis[21][21];int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0};int m,n,step;int ret; public:int uniquePathsIII(vectorvectorint grid) {int bx,by;m grid.size(),n grid[0].size();for(int i 0;im;i){for(int j 0; j n;j){if(grid[i][j] 0) step;else if(grid[i][j] 1){bx i;by j;}}}step 2;vis[bx][by] true;dfs(grid,bx,by,1);return ret;}void dfs(vectorvectorint grid,int i,int j,int count){if(grid[i][j] 2){if(count step) //判断是否合法ret;return;}for(int k 0;k 4;k){int x i dx[k],y j dy[k];if(x 0 x m y 0 y n !vis[x][y] grid[x][y] ! -1){vis[x][y] true;dfs(grid,x,y,count 1);vis[x][y] false;}}} }; 总结 ✨✨✨各位读友本篇分享到内容是否更好的让你理解DFS如果对你有帮助给个赞鼓励一下吧 世上没有绝望的处境只有对处境绝望的人。 感谢每一位一起走到这的伙伴我们可以一起交流进步一起加油吧
http://www.hkea.cn/news/14293350/

相关文章:

  • 河北建设厅官方网站电话网时代教育培训机构怎么样
  • 站长素材音效网郴州网站建设网络推广渠道
  • pycharm 网站开发哪些行业对做网站的需求大
  • 杭州网站的特点类似5173的网站怎么做
  • 素材网站的下载服务器怎么做带域名的网站打不开
  • 网页与网站设计 什么是属性网站维护机构
  • 北京市建设工程第四检测所网站银川建网站
  • 手机能建网站吗企业网站建设北京公司排名
  • 深圳设计网站的公司seo技术分享博客
  • 对网站建设行业的了解不侵权的图片素材网站
  • 建建建设网站现在建设网站落后了
  • 网站首页添加标签网站建设公司怎么盈利
  • 哈尔滨免费建站模板微信公众号推广营销
  • 在线做3d交互的网站wordpress 加速
  • 用云速成美站怎么做网站微信开放平台 网站开发
  • html5 手机网站页面实例宝塔建站系统
  • 公司建网站需要多少钱国外ps教程网站
  • 潍坊做网站的那家好简单的网页设计作品欣赏
  • 怎么模仿网站做ppt网站 不 备案
  • 微信如何做有趣的短视频网站域名查ip地址查询
  • 如何设计制作一般企业网站一个刚有官网的公司怎么做网站运营
  • 阳泉建设网站的公司网站建设记录过程
  • 如何打死网站wordpress单本小说模板
  • 广州公司建设网站p2p网站开发用什么平台
  • 网站做多久能盈利公司域名是什么意思
  • 项目招商网站大全响应式布局的优点是什么
  • 深圳网站开发培训专门做二手手机的网站吗
  • 省级住房城乡建设主管部门网站手机开发者模式利弊
  • 延平网站建设wzjseo做网站需要几步
  • 成都哪里有做网站的公司长安高端装备网站设计公司