猛攻代码随想录day3|26届暑期实习

周末两天补了补项目,玩了玩,没做题呜呜呜

回溯算法

回溯与递归相辅相成,用于解决:组合、分割、子集、排列、棋盘问题

46.全排列


模板:

void backtrack(参数) {
    if (终止条件) {
        记录结果;
        return;
    }
    for (选择 : 所有可选项) {
        if (剪枝条件) continue;
        做出选择(path.push_back, used[i]=true);
        backtrack(下一层参数); // 递归
        撤销选择(path.pop_back, used[i]=false); // 回溯
    }
}

到最后一层之后要pop_back、used置为false,表示当前分支探索完,回溯上去尝试其他分支

算了还是按照代码随想录顺序系统看一下吧

第77题. 组合

组合问题不能重复取,需要一个startindex来控制

照着回溯模板:

void backtracking(参数) {
    if (终止条件) {
        存放结果;
        return;
    }

    for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
        处理节点;
        backtracking(路径,选择列表); // 递归
        回溯,撤销处理结果
    }
}
class Solution {
private:
    vector<vector<int>> result; // 存放符合条件结果的集合
    vector<int> path; // 用来存放符合条件结果
    void backtracking(int n, int k, int startIndex) {
        if (path.size() == k) {
            result.push_back(path);
            return;
        }
        for (int i = startIndex; i <= n; i++) {
            path.push_back(i); // 处理节点
            backtracking(n, k, i + 1); // 递归
            path.pop_back(); // 回溯,撤销处理的节点
        }
    }
public:
    vector<vector<int>> combine(int n, int k) {
        backtracking(n, k, 1);
        return result;
    }
};

216.组合总和III

比上一题终止条件多了一个判断总和是否等于目标和,循环的时候累加一个sum

17.电话号码的字母组合

数字和字母之间要用map做映射,或者用一个二维数组:

const string letterMap[10] = {
    "", // 0
    "", // 1
    "abc", // 2
    "def", // 3
    "ghi", // 4
    "jkl", // 5
    "mno", // 6
    "pqrs", // 7
    "tuv", // 8
    "wxyz", // 9
};

这题就不需要startindex了,因为是在不同的集合中取数

还需要将字符串表示的数字转换成int类型的

        int digit = digits[index] - '0'; //'2'转换为数字2...
        string letters = letterMap[digit]; //2转换为abc
        for (int i = 0; i < letters.size(); i++) { // 从abc中取a、b、c
            s.push_back(letters[i]);
            backtracking(digits, index + 1);
            s.pop_back();
        }

39. 组合总和

可以重复取数

    backtracking(candidates, target, sum, i); // 关键点:不用i+1了,表示可以重复读取当前的数

40.组合总和II

这题就不能重复取数了,但是数组中可能会有重复元素,上一题是无重复元素数组

像全排列那样,用一个used数组来去重

初始化used数组

        vector<bool> used(candidates.size(), false);

 排序

        // 首先把给candidates排序,让其相同的元素都挨在一起。
        sort(candidates.begin(), candidates.end());

去重:

used[i - 1] == true,说明同一树枝candidates[i - 1]使用过
 used[i - 1] == false,说明同一树层candidates[i - 1]使用过

            // 要对同一树层使用过的元素进行跳过
            if (i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) {
                continue;
            }

 

 131.分割回文串

 

 substr用法

                // 获取[startIndex,i]在s中的子串
                string str = s.substr(startIndex, i - startIndex + 1);
                path.push_back(str);

写到这去面了一家机器人公司,真的是被拷打麻了,唉基础知识还是掌握的不够

 93.复原IP地址

要添加逗点、根据逗点的数量是否为3且第四段子串合法作为终止条件

78.子集

做组合时候的所有节点都是子集

90.子集II

数组中有重复元素,要做数层去重

所以依然是先排列,判断前后是不是相等、有没有用过 

勉勉强强做出来了

先做到这吧!!

<think>好的,用户让我分析今晚欧罗巴比赛比尔森对阵拉齐奥的胜负情况。首先,我需要确认这两支球队的基本信息。比尔森是捷克球队,而拉齐奥来自意甲。接下来,我得看看他们的近期状态。拉齐奥作为意甲中上游球队,整体实力应该比捷克联赛的比尔森强,但足球比赛常有意外,不能只看名气。 然后,我需要查阅两队最近的比赛结果。比如,比尔森在国内联赛的表现如何,是否有主力球员受伤或停赛。拉齐奥最近的战绩,尤其是客场表现,因为这场是比尔森的主场。主客场因素对比赛结果影响很大,主场优势可能会让比尔森更有战斗力。 另外,欧战经验也很重要。拉齐奥可能更有经验参加欧洲赛事,这在大赛中很关键。但比尔森如果主场作战,可能会有更强的斗志,尤其是如果他们需要积分来晋级的话。 还要考虑战术打法。拉齐奥可能倾向于控球和防守反击,而比尔森可能会利用主场优势采取高压逼抢。需要看看双方教练的战术安排是否有针对性。 伤病情况也是关键因素。如果有核心球员缺阵,尤其是防守或进攻核心,可能会影响比赛结果。需要查最新的球队新闻,确认是否有重要球员无法上场。 最后,结合以上因素,给出一个合理的预测。但也要提醒用户,足球比赛结果难以百分百预测,存在很多不确定因素,比如临场发挥、裁判判罚等。建议用户理性参考,并结合自己的判断。</think>关于今晚欧罗巴联赛**比尔森(捷克)vs 拉齐奥(意大利)**的胜负分析,以下是基于数据和战术角度的推测框架: --- ### **关键分析维度** 1. **近期状态对比** - **比尔森**:近5场3胜1平1负(捷克联赛排名第2),但欧战经验相对薄弱,近期欧联杯1胜1负。 - **拉齐奥**:近5场2胜2平1负(意甲排名第6),上轮联赛客场0-3负于博洛尼亚,状态略有波动。 2. **主客场差异** - 比尔森主场优势明显,本赛季主场胜率75%,且捷克球队主场氛围狂热。 - 拉齐奥本赛季客场表现一般(意甲客场胜率仅33%),但欧战经验丰富(上赛季欧冠小组赛经验)。 3. **战术风格** - **比尔森**:依赖边路传中和高空球(场均传中18次),定位球威胁大。 - **拉齐奥**:擅长控球(意甲场均控球率55%)和快速反击,锋线因莫比莱状态回升。 4. **伤病与阵容** - 比尔森:主力中场卡尔瓦赫伤缺,防线完整。 - 拉齐奥:主力中场阿尔贝托复出,但中卫罗马尼奥利可能轮休。 --- ### **胜负推测** 1. **平局可能性较高**(约40%) - 拉齐奥需分心周末意甲对阵佛罗伦萨,可能轮换部分主力。 - 比尔森主场防守稳固(近3场主场仅失1球),但进攻端缺乏顶级射手。 2. **拉齐奥小胜**(约35%) - 若因莫比莱、安德森等主力首发,反击效率可能击穿比尔森防线。 - 拉齐奥欧战经验更丰富,关键战心态更稳。 3. **比尔森爆冷**(约25%) - 需依赖定位球或拉齐奥后防失误,概率相对较低。 --- ### **建议关注点** - **拉齐奥是否轮换**:若主力中场米林科维奇或门将普罗维德尔轮休,防守稳定性下降。 - **前30分钟节奏**:比尔森可能开场猛攻,若拉齐奥顶住压力,后半程反击机会更大。 --- **最终倾向**:拉齐奥客场不败(**平局或1球小胜**),比分参考 **1-1、0-1**。 (注:足球比赛偶然性较大,建议结合临场阵容调整判断。)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值