马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1.LCR 187. 破冰游戏
题目来源
社团共有 num 位成员到场破冰游戏,编号为 0 ~ num-1。成员们按照编号顺序围绕圆桌而坐。社长抽取一个数字 target,从 0 号成员起开始计数,排在第 target 位的成员离开圆桌,且成员离开后从下一个成员开始计数。请返回游戏结束时最后一位成员的编号。
示例 1:
输入:num = 7, target = 4
输出:1
大神题解
- class Solution {
- public:
- int iceBreakingGame(int num, int target) {
- // 反推,后一次返回数字是前一次位置是当前前移了target个位置得到的
- if (num == 1) return 0;
- int x = iceBreakingGame(num - 1, target);
- return (x +target) % num;
- }
- };
复制代码 1.路径总和 II
题目来源
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。
示例 1:
输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
输出:[[5,4,11,2],[5,8,4,5]]
- /**
- * Definition for a binary tree node.
- * struct TreeNode {
- * int val;
- * TreeNode *left;
- * TreeNode *right;
- * TreeNode() : val(0), left(nullptr), right(nullptr) {}
- * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
- * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
- * };
- */
- class Solution {
- vector<vector<int>> ret;
- public:
- void dfs(TreeNode* root, int targetSum, int sum, vector<int> &temp){
- if (root == nullptr) return;
- sum += root->val;
- temp.push_back(root->val);
- if (root->left == nullptr && root->right == nullptr){
- if (sum == targetSum) ret.push_back(temp);
- }
- dfs(root->left, targetSum, sum, temp);
- dfs(root->right, targetSum, sum, temp);
- temp.pop_back();
- }
- vector<vector<int>> pathSum(TreeNode* root, int targetSum) {
- vector<int> temp;
- int sum = 0;
- dfs(root, targetSum, sum, temp);
- return ret;
- }
- };
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |