算法训练营第三十天|332.重新安排行程 51. N皇后 37. 解数独

news/2024/11/23 3:40:10/

目录

  • Leetcode332.重新安排行程
  • Leetcode51. N皇后
  • Leetcode37. 解数独

Leetcode332.重新安排行程

文章链接:代码随想录
题目链接:332.重新安排行程

class Solution {
public:unordered_map<string, map<string, int>> targets;bool backtracking(int ticketNum, vector<string>& result){if (result.size() == ticketNum + 1){return true;}for (pair<const string, int>& target : targets[result[result.size() - 1]]){if (target.second > 0){result.push_back(target.first);target.second--;if (backtracking(ticketNum, result)) return true;target.second++;result.pop_back();}}return false;}vector<string> findItinerary(vector<vector<string>>& tickets) {vector<string> result;for (const vector<string>& vec : tickets){targets[vec[0]][vec[1]]++;}result.push_back("JFK");backtracking(tickets.size(), result);return result;}
};

Leetcode51. N皇后

文章链接:代码随想录
思路链接:51. N皇后

class Solution {
public:vector<vector<string>> res;void backtracking(int n, int row, vector<string>& chessboard){if (row == n){res.push_back(chessboard);return ;}for (int col = 0; col < n; col++){if (isValid(col, row, chessboard, n)){chessboard[row][col] = 'Q';backtracking(n, row + 1, chessboard);chessboard[row][col] = '.';}}}bool isValid(int col, int row, vector<string>& chessboard, int n){for (int i = 0; i < row; i++) { if (chessboard[i][col] == 'Q') {return false;}}for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--){if (chessboard[i][j] == 'Q') return false;}for (int i = row - 1, j = col + 1; i >= 0 && j < n; i--, j++){if (chessboard[i][j] == 'Q') return false;}return true;}vector<vector<string>> solveNQueens(int n) {vector<string> chessboard(n, string(n, '.'));backtracking(n, 0, chessboard);return res;}
};

Leetcode37. 解数独

文章链接:代码随想录
思路链接:37. 解数独

class Solution {
public:bool backtracking(vector<vector<char>>& board){for (int i = 0; i < board.size(); i++){for (int j = 0; j < board[0].size(); j++){if (board[i][j] == '.'){for (char k = '1'; k <= '9'; k++){if (isValid(i, j, k, board)){board[i][j] = k;if (backtracking(board)) return true;board[i][j] = '.';}}return false;}}   }return true;}bool isValid(int row, int col, char val, vector<vector<char>>& board){for (int i = 0; i < board.size(); i++){if (board[i][col] == val) return false;}for (int j = 0; j < board[0].size(); j++){if (board[row][j] == val) return false;}int startRow = (row / 3) * 3;int startCol = (col / 3) * 3;for (int i = startRow; i < startRow + 3; i++){for (int j = startCol; j < startCol + 3; j++){if (board[i][j] == val) return false;}}return true;}void solveSudoku(vector<vector<char>>& board) {backtracking(board);}
};

2023.12.28
今天作项目解题PPT太忙没空做,先站个位

2023.12.29
今天忙着为明天拍摄实验做调试准备,按着昨天看解析文章的理解,今天又大致看了一遍敲出来了三道题,今天的题没刷。
这几天太忙没时间刷题学和计算机基础,今天也没健身,明天实验估计又没时间,跨年前估计不会学出太多了;不过还好前一个无关的项目今天结题了,明天是做课题相关实验,也不算浪费时间,一切还是向着好的方向发展,丢掉焦虑,停止内耗,踏实做自己能做的事就好。
希望明天实验顺利,跨年那天上午练个肩,下午回家,顺便发个跨年健身的朋友圈(文案想了十几天还没想好哈哈哈,不过图片选好了就一张),然后把今明两天的题补上。明后天有时间就再看点操作系统,加油!!!


http://www.ppmy.cn/news/1290625.html

相关文章

【linux 多线程并发】多任务调度器,调度策略时间片轮转,先进先出,多种实时任务的策略,内核级最高优先级调度策略

任务调度器 ​专栏内容&#xff1a; 参天引擎内核架构 本专栏一起来聊聊参天引擎内核架构&#xff0c;以及如何实现多机的数据库节点的多读多写&#xff0c;与传统主备&#xff0c;MPP的区别&#xff0c;技术难点的分析&#xff0c;数据元数据同步&#xff0c;多主节点的情况下…

2024.1.2 Redis 数据类型 Stream、Geospatial、HyperLogLog、Bitmaps、Bitfields 简介

目录 引言 Stream 类型 Geospatial 类型 HyperLogLog 类型 Bitmaps 类型 Bitfields 类型 引言 Redis 最关键&#xff08;应用广泛、频繁使用&#xff09;的五个数据类型 StringListHashSetZSet 下文介绍的数据类型一般适合在特定的场景中使用&#xff01; Stream 类型 St…

uView Code 验证码输入框

考虑到用户实际发送验证码的场景&#xff0c;可能是一个按钮&#xff0c;也可能是一段文字&#xff0c;提示语各有不同&#xff0c;所以本组件 不提供界面显示&#xff0c;只提供提示语&#xff0c;由用户将提示语嵌入到具体的场景 #平台差异说明 App&#xff08;vue&#xf…

塔夫特原则

塔夫特原则&#xff08;Tuftes Principles&#xff09;是由数据可视化专家爱德华塔夫特&#xff08;Edward Tufte&#xff09;提出的一组指导性原则&#xff0c;旨在帮助人们创建清晰、有效和有力的数据可视化图表。这些原则强调了以数据为核心&#xff0c;通过简洁、准确和易于…

【第7期】前端如何实现菜单记忆和用户操作的状态记忆

本期简介 背景一&#xff1a;我们平时使用到管理功能时&#xff0c;会涉及到打开了某个一级菜单&#xff0c;访问了某个二级菜单&#xff0c;打开了相应的页面&#xff0c;那么我们希望一级菜单当前时展开的&#xff0c;二级菜单当前时有选中颜色与其他未访问的菜单进行区分的&…

搭建宠物寄养小程序流程

近日&#xff0c;一地宠物寄养需求旺盛&#xff0c;元旦满房&#xff0c;春节几近饱和&#xff0c;一窝难求。随着市场需求的增长&#xff0c;对于很多宠物行业的商家&#xff0c;可以考虑开展宠物寄养服务&#xff0c;尤其是节假日的宠物寄养需求会更高。因此&#xff0c;商家…

高德地图信息窗体设置

1. 添加默认信息窗体 //构建信息窗体中显示的内容var info [];info.push(<div style"height: 36px; line-height: 45px; padding: 0px 20px; white-space:nowrap;">位置&#xff1a;北京</div>);info.push(<div style"height: 36px; line-heig…

ZZULI-新冠疫苗接种信息管理系统

✅简介&#xff1a;与大家一起加油&#xff0c;希望文章能够帮助各位&#xff01;&#xff01;&#xff01;&#xff01; &#x1f4ac;保持学习、保持热爱、认真分享、一起进步&#xff01;&#xff01;&#xff01; 目录 ✅简介&#xff1a;与大家一起加油&#xff0c;希望文…