头像

烛之武

AcWing




离线:7小时前


最近来访(118)
用户头像
LvTao
用户头像
U+1D405
用户头像
xueli
用户头像
蟹黄包_3
用户头像
chyMIT2028
用户头像
纪念曾经的信念
用户头像
brivia
用户头像
兰陵笑笑生
用户头像
海星派大双
用户头像
卿临
用户头像
垫底抽风
用户头像
星冈山月
用户头像
dsc182
用户头像
Tea.
用户头像
往事随风_
用户头像
kukudewen
用户头像
九命之猫
用户头像
维Cboy
用户头像
Timi
用户头像
炮灰


欧拉图

class Solution {
public:
    vector<vector<int>> ans;
    map<int, vector<int>> g;
    map<int, int> deg;

    void dfs(int u) {
        auto &ele = g[u];
        while (!ele.empty()) {
            int p = ele.back();
            ele.pop_back();
            dfs(p);
            ans.push_back({u, p});
        }
    }

    vector<vector<int>> validArrangement(vector<vector<int>>& pairs) {
        for (auto &ele: pairs) {
            g[ele[0]].push_back(ele[1]);
            deg[ele[0]] --;
            deg[ele[1]] ++;
        }

        for (auto itr = deg.begin(); itr != deg.end(); itr ++) {
            if (itr->second == -1) {
                dfs(itr->first);
                break;
            }
        }

        if (ans.size() == 0) {
            dfs(deg.begin()->first);
        }
        reverse(ans.begin(), ans.end());
        return ans;
    }
};



迭代

class Solution {
public:

    bool check(int num) {
        if (num == 0) return false;
        if (num & 1) return false;
        if (num < 100) return false;
        return true;
    }

    vector<int> findEvenNumbers(vector<int>& digits) {
        int n = digits.size();
        set<int> st;
        for (int i = 0; i < n; i ++) {
            for (int j = 0; j < n; j ++) {
                if (j == i) continue;
                for (int k = 0; k < n; k ++) {
                    if (k == i || k == j) continue;
                    int num = 0;
                    num = digits[i] * 100 + digits[j] * 10 + digits[k];
                    if (check(num)) {
                        st.insert(num);
                    }
                }
            }
        }
        vector<int> ans;
        for (auto &ele: st) {
            ans.push_back(ele);
        }

        return ans;
    }
};



模拟

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* deleteMiddle(ListNode* head) {
        int n = 0;
        auto p = head;
        while (p) {
            n ++;
            p = p->next;
        }
        int mid = n / 2;
        auto dummy = new ListNode(-1);
        dummy->next = head;
        p = dummy;
        auto q = p->next;
        for (int i = 0; i < mid; i ++) {
            p = p->next;
            q = q->next;
        }
        p->next = q->next;
        return dummy->next;
    }
};



最近公共祖先

/**
 * 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 {
public:
    bool check(TreeNode* root, int x, string& str){
        if(root->val == x) return true;
        if(root->left){
            str.push_back('L');
            if(check(root->left, x, str)) return true;
            str.pop_back();
        }
        if(root->right){
            str.push_back('R');
            if(check(root->right, x, str)) return true;
            str.pop_back();
        }
        return false;
    }

    string getDirections(TreeNode* root, int s, int d) {
        string strStart, strEnd;

        check(root, s, strStart);
        check(root, d, strEnd);

        int idx = 0;
        while (idx < strStart.size()) {
            if (strStart[idx] == strEnd[idx]) idx ++;
            else break;
        }

        string left, right;
        int n = strStart.size();
        if (idx == 0) {
            for (int i = 0; i < n; i ++) {
                left += "U";
            }
            right = strEnd;
        } else {
            for (int i = 0; i < n - idx; i ++) {
                left += "U";
            }
            right = strEnd.substr(idx);
        }

        return left + right;
    }
};


活动打卡代码 Linux 5.9. homework_9

将远程仓库下载到云端服务器上

1.先在ac.git上将该云端服务器的ssh公钥添加
2.git clone将仓库中的代码下载到本地指定位置


活动打卡代码 Linux 5.8. homework_8

分支合并

git merge dev
手动处理冲突
git add .
git commit 


活动打卡代码 AcWing 5.7. homework_7

切换分支

git checkout master
修改文件的内容后
git add .
git commit


活动打卡代码 AcWing 5.6. homework_6

新建分支

//创建dev分支
git checkout -b dev

//将dev分支推送到云端
git push --set-upstream origin dev



活动打卡代码 AcWing 5.5. homework_5

创建分支

将本地当前分支上传至云端分支

git push --set-upstream origin branch_name


活动打卡代码 Linux 5.4. homework_4

按照要求修改文件,并提交

rm problem2 -r
mkdir problem3 
cd problem3
vim main.cpp
将代码拷贝
删除readme.txt 中的222,添加333
git add .
git commit