<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Amberfd的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Amberfd</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Amberfd]]></copyright><item><title><![CDATA[艰难的SIC自我救赎之路（无导师指导自救记录，共勉）]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/114577035</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/114577035</guid><author>Amberfd</author><pubDate>Thu, 18 Nov 2021 14:43:35 +0800</pubDate><description><![CDATA[前言
本人C9院校本科保研本校，通信工程，学硕，毕业要求有硬性规定需要发表SCI。
保研时期的偷懒躺平想法，让我后期花费了更多的心力，也承受了更多的打击。SCI还在继续，失败了不过是再次爬起。和众多自力更生的硕士研究生共勉。
在没有导师指导的情况下，对于我来说，最好的办法就是不断投稿按照审稿人的建议修正，这种方法虽然可行，但是会比较浪费时间，因为并不是每一次都能遇到负责的审稿人和编辑。在时间有限的前提下，建议尽量选择速度快的期刊，可以早日拿到审稿人的comments，同时建议不断产出新文章，这样可以多线程操]]></description><category></category></item><item><title><![CDATA[剑指 Offer 36. 二叉搜索树与双向链表]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/117329534</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/117329534</guid><author>Amberfd</author><pubDate>Thu, 27 May 2021 15:34:32 +0800</pubDate><description><![CDATA[二叉树为中序遍历递增序列。
解法一
/*
// Definition for a Node.
class Node {
public:
    int val;
    Node* left;
    Node* right;

    Node() {}

    Node(int _val) {
        val = _val;
        left = NULL;
        right = NULL;
    }

    Node(int _val, Node* _left, ...]]></description><category></category></item><item><title><![CDATA[剑指 Offer 51. 数组中的逆序对]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/117329103</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/117329103</guid><author>Amberfd</author><pubDate>Thu, 27 May 2021 15:06:58 +0800</pubDate><description><![CDATA[解法一 归并排序
速度比较慢
class Solution {
public:
    int merge(vector&lt;int&gt;&amp; num,int l, int r){
        if(l&gt;=r) return 0;
        int mid = l+r&gt;&gt;1;//r右移一位
        int res = merge(num,l,mid)+merge(num,mid+1,r);
        int i= l,j=mid+1;
        v.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 34. 二叉树中和为某一值的路径]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/116205053</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/116205053</guid><author>Amberfd</author><pubDate>Tue, 27 Apr 2021 16:58:29 +0800</pubDate><description><![CDATA[解法一
dfs
两边遍历，但是不知道为什么要root为终节点时才停止，但是如果root不是最下面的节点，会报错
class Solution {
public:
    vector&lt;int&gt; path;
    vector&lt;vector&lt;int&gt;&gt; ans;
    void dfs(TreeNode* root,int sum){
        if(!root) return;
        path.push_back(root-&gt;val);
   .]]></description><category></category></item><item><title><![CDATA[剑指 Offer 43. 1～n 整数中 1 出现的次数]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/116203363</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/116203363</guid><author>Amberfd</author><pubDate>Tue, 27 Apr 2021 16:06:02 +0800</pubDate><description><![CDATA[解法一
暴力遍历会超时，找规律

class Solution {
public:
    int countDigitOne(int n) {
        int count = 0;
        long i = 1;//指当前遍历的位数，1指个位，10指十位
        while(n/i!=0){
            long high = n/(10*i);//将当前位置的所有高位都存在high中
            long cur = (n/i)%10;//将当前位存在c.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 68 - II. 二叉树的最近公共祖先]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/116197920</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/116197920</guid><author>Amberfd</author><pubDate>Tue, 27 Apr 2021 12:09:06 +0800</pubDate><description><![CDATA[解法一 递归
class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        if(root == nullptr || root == p || root ==q) return root;
        TreeNode* left =  lowestCommonAncestor(root-&gt;left,p,q);
        Tre.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 68 - I. 二叉搜索树的最近公共祖先]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/116056519</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/116056519</guid><author>Amberfd</author><pubDate>Fri, 23 Apr 2021 14:58:29 +0800</pubDate><description><![CDATA[解法一
是有序的二叉树，左中右大小顺序。
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    TreeNode*.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 67. 把字符串转换成整数]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/115682624</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/115682624</guid><author>Amberfd</author><pubDate>Tue, 13 Apr 2021 23:50:00 +0800</pubDate><description><![CDATA[解法一
存在long
//使用long
class Solution {
public:
    int strToInt(string str) {
        int i = 0, flag = 1;//默认flag为正数
        long res = 0;
        while(str[i]==' ') i++;
        if(str[i] == '-') flag = -1;
        if(str[i] == '-' || str[i] == '+' ) i++;.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 14- II. 剪绳子 II]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/115682192</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/115682192</guid><author>Amberfd</author><pubDate>Tue, 13 Apr 2021 23:22:23 +0800</pubDate><description><![CDATA[解法一
贪心算法，考虑数据溢出的问题
class Solution {
public:
    int cuttingRope(int n) {
        if(n&lt;=3) return n-1;
        long res =1;
        while(n&gt;4){
            n = n-3;
            res = res*3%(1000000007);
        }
        res = res*n%(1000000007);
   .]]></description><category></category></item><item><title><![CDATA[剑指 Offer 14- I. 剪绳子]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/115677610</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/115677610</guid><author>Amberfd</author><pubDate>Tue, 13 Apr 2021 23:16:00 +0800</pubDate><description><![CDATA[解法一
动态规划
class Solution {
public:
    int cuttingRope(int n) {
        if(n&lt;=3) return n-1;
        vector&lt;int&gt; dp(n+1);
        dp[1] = 1;
        dp[2] = 2;
        dp[3] = 3;//当n大于3时,&lt;=3的部分可以不继续拆分，它本身的长度作为dp值
        for (int i = 4; i &lt;=.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 35. 复杂链表的复制]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/114733378</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/114733378</guid><author>Amberfd</author><pubDate>Tue, 13 Apr 2021 16:21:42 +0800</pubDate><description><![CDATA[解法一
使用Hash建立映射表
class Solution {
public:
    Node* copyRandomList(Node* head) {
        if(head==nullptr) return nullptr;
        Node* cur=head;
        unordered_map&lt;Node*,Node*&gt; map;
        while(cur!=nullptr){
            map[cur]=new Node(cur-.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 13. 机器人的运动范围]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/115670509</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/115670509</guid><author>Amberfd</author><pubDate>Tue, 13 Apr 2021 16:16:54 +0800</pubDate><description><![CDATA[解法一
广度优先搜索，使用pair，以及队列queue，先进先出
//广度优先搜索
class Solution {
    int get(int x){
        int res = 0;
        for ( ; x; x/=10)
        {
            res+=x % 10;
        }
        return res;
    }
public:
    int movingCount(int m, int n, int k) {
       .]]></description><category></category></item><item><title><![CDATA[剑指 Offer 19. 正则表达式匹配]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/115487860</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/115487860</guid><author>Amberfd</author><pubDate>Wed, 07 Apr 2021 15:55:49 +0800</pubDate><description><![CDATA[解法一
class Solution {
public:
    bool isMatch(string s, string p) {
        int slen = s.size(), plen = p.size();
        vector&lt; vector&lt;bool&gt;&gt; dp(slen+1,vector&lt;bool&gt;(plen+1,false));
        dp[0][0] = true;
        //初始化首行
        for (.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 33. 二叉搜索树的后序遍历序列]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/114732144</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/114732144</guid><author>Amberfd</author><pubDate>Sat, 13 Mar 2021 10:27:19 +0800</pubDate><description><![CDATA[解法一
递归
class Solution {
public:
    bool verifyPostorder(vector&lt;int&gt;&amp; postorder) {
        if(postorder.size()==0) return true;
        return rever(postorder, 0 ,postorder.size()-1);
    }

    bool rever(vector&lt;int&gt;&amp; postorder, int l.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 60. n个骰子的点数]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/114700017</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/114700017</guid><author>Amberfd</author><pubDate>Fri, 12 Mar 2021 16:42:33 +0800</pubDate><description><![CDATA[解法一
动态规划，每多一位n多进行一轮
class Solution {
public:
    vector&lt;double&gt; dicesProbability(int n) {
        vector&lt;double&gt; dp(6,1.0/6.0);
        for (int i = 2; i &lt;= n; i++)
        {
            vector&lt;double&gt; temp(5*i+1,0);
            for (.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 56 - II. 数组中数字出现的次数 II]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/114697035</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/114697035</guid><author>Amberfd</author><pubDate>Fri, 12 Mar 2021 15:19:32 +0800</pubDate><description><![CDATA[解法一
排序
class Solution {
public:
    int singleNumber(vector&lt;int&gt;&amp; nums) {
        sort(nums.begin(),nums.end());//排序
        for (int i = 0; i &lt; nums.size()-2; i+=3)//注意跳出循环条件
        {
            if(nums[i]!=nums[i+2]) return nums[i];//每隔三个.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 56 - I. 数组中数字出现的次数]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/114694503</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/114694503</guid><author>Amberfd</author><pubDate>Fri, 12 Mar 2021 14:14:07 +0800</pubDate><description><![CDATA[解法一
异或运算有个重要的性质，两个相同数字异或为 0 ，即对于任意整数 a，有a⊕a=0 。题中有两个不同的数字，需要把二者分组，各组别自行异或，最终可以获得落单的数字。
class Solution {
public:
    vector&lt;int&gt; singleNumbers(vector&lt;int&gt;&amp; nums) {
        int x=0,y=0,n=0,m=1;
        for(int num:nums ){
            n^=num;.]]></description><category></category></item><item><title><![CDATA[剑指 Offer 66. 构建乘积数组]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/114674093</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/114674093</guid><author>Amberfd</author><pubDate>Thu, 11 Mar 2021 17:11:11 +0800</pubDate><description><![CDATA[解法一
双向遍历，利用表格进行划分

可以把计算拆成两部分
从上到下，左下角一次遍历，计算出B[1]~B[3]的乘积
从下到上，右上角一次遍历，计算出B[2]~B[0]的乘积
这里用的技巧是基于上一个B[i-1]来计算，即 B[i] = B[i-1] * A[i-1]
class Solution {
public:
    vector&lt;int&gt; constructArr(vector&lt;int&gt;&amp; a) {
        int n =a.size();
       .]]></description><category></category></item><item><title><![CDATA[剑指 Offer 63. 股票的最大利润]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/114671774</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/114671774</guid><author>Amberfd</author><pubDate>Thu, 11 Mar 2021 16:29:54 +0800</pubDate><description><![CDATA[解法一
双循环暴力破解 可能会导致超时
class Solution {
public:
    int maxProfit(vector&lt;int&gt;&amp; prices) {
        int ans = 0;
        for (int i = 0; i &lt; prices.size(); i++)
        {
            for (int j = i+1; j &lt; prices.size(); j++)
            {
      .]]></description><category></category></item><item><title><![CDATA[剑指 Offer 62. 圆圈中最后剩下的数字]]></title><link>https://blog.youkuaiyun.com/Amberfd/article/details/114667683</link><guid>https://blog.youkuaiyun.com/Amberfd/article/details/114667683</guid><author>Amberfd</author><pubDate>Thu, 11 Mar 2021 15:28:55 +0800</pubDate><description><![CDATA[解法一
著名的约瑟夫环问题

class Solution {
public:
    int lastRemaining(int n, int m) {
        int x=0;
        for (int i = 2; i &lt;=n; i++)
        {
            x=(x+m)%i;
        }
        return x;
    }
};

约瑟夫环，公式推导过程

...]]></description><category></category></item></channel></rss>