CSDN 年度总结|知识改变命运,学习成就未来

CSDN 年度总结|知识改变命运,学习成就未来_第1张图片

欢迎来到英杰社区:
https://bbs.csdn.net/topics/617804998

欢迎来到阿Q社区:
https://bbs.csdn.net/topics/617897397


作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看
相关专栏C语言初阶、C语言进阶系列、恒川等,大家有兴趣的可以看一看
Python零基础入门系列,Java入门篇系列、docker技术篇系列、Apollo的学习录系列正在发展中,喜欢Python、Java、docker的朋友们可以关注一下哦!

回顾 2023 恒川的编程之旅

  • 一、这一年的日常内容
    • 1. 每天坚持做一道力扣
    • 2. 每天传码云
    • 3. 每天坚持背单词
    • 4. 坚持写博客
    • 5. 坚持跑步锻炼
  • 二、这一年的学习历程
    • 23年1月到4月
    • 23年5月到6月
    • 23年7月
    • 23年8月
    • 23年9月
    • 23年10月
    • 23年11月
    • 23年12月
  • 三、这一年取得的成就
  • 四、关于编程的新年Flag
  • 五、我的最佳代码实践

  知识改变命运,学习成就未来。时序更替,岁物丰成。回望来时路,我们已走过千山万水;展望新征程,曙光跃动在地平线上。在成长的道路上,不断充实自己,才能走得更远。大家好,我是恒川,目前是一名大二的学生,来csdn已经一年了,这篇博客不谈技术,回顾恒川 2023年 的编程之旅。

一、这一年的日常内容

1. 每天坚持做一道力扣

CSDN 年度总结|知识改变命运,学习成就未来_第2张图片

  每天坚持做一道力扣题目,目前已经坚持快200天了,最近准备搞一个力扣刷题专栏,刷力扣的小伙伴可以期待一下了。
百天勋章
CSDN 年度总结|知识改变命运,学习成就未来_第3张图片

2. 每天传码云

CSDN 年度总结|知识改变命运,学习成就未来_第4张图片

  关注我的人都知道,我的仓库已经传了400+了,传仓库的好处我就不介绍了,这四百天的日日夜夜,现在仍在坚持。

3. 每天坚持背单词

  不知道大家背单词都用的什么app,我一开始先用的百词斩,后来同学都说不背单词这款软件效果更好,于是八月底我就忍痛割爱了百词斩。
CSDN 年度总结|知识改变命运,学习成就未来_第5张图片
CSDN 年度总结|知识改变命运,学习成就未来_第6张图片
CSDN 年度总结|知识改变命运,学习成就未来_第7张图片
CSDN 年度总结|知识改变命运,学习成就未来_第8张图片
CSDN 年度总结|知识改变命运,学习成就未来_第9张图片
CSDN 年度总结|知识改变命运,学习成就未来_第10张图片
CSDN 年度总结|知识改变命运,学习成就未来_第11张图片
CSDN 年度总结|知识改变命运,学习成就未来_第12张图片

4. 坚持写博客

  我来csdn一年多了,23年一共写了104篇博客,通过写博客获得了许多益处,不仅锻炼了自己的创作能力,而且还收获了许多志同道合的朋友们。
CSDN 年度总结|知识改变命运,学习成就未来_第13张图片

5. 坚持跑步锻炼

  在追求技术的同时,也要关注自己的身体和心理健康。确保有足够的休息和娱乐时间,保持平衡的生活。
CSDN 年度总结|知识改变命运,学习成就未来_第14张图片

二、这一年的学习历程

23年1月到4月

  23年1月到4月,我系统的学习了C语言。
CSDN 年度总结|知识改变命运,学习成就未来_第15张图片

  期间ChatGPT和文心一言的爆火,让编程更加简单。
CSDN 年度总结|知识改变命运,学习成就未来_第16张图片
CSDN 年度总结|知识改变命运,学习成就未来_第17张图片

23年5月到6月

  23年5月到6月,我自学了python,并参加了新星计划。
  获得了实力新星奖的证书和赛道的top1。

6月我还学了些Java语言,并创建了专属于Java的专栏。
CSDN 年度总结|知识改变命运,学习成就未来_第18张图片
6月我的勤写标兵已经达到了四级
CSDN 年度总结|知识改变命运,学习成就未来_第19张图片

23年7月

  7月我简单了解了docker,也创建了专属于docker的专栏,该专栏发了15篇内容,文章平均质量分 98,这是我的docker的专栏,欢迎大家订阅,后续持续更新。
CSDN 年度总结|知识改变命运,学习成就未来_第20张图片
七月份我还报名当了新星计划的导师,并带领60多人学习了Java

23年8月

  8月我参加Apollo自动驾驶征文活动,并发布了一些文章,收获蛮大的。
CSDN 年度总结|知识改变命运,学习成就未来_第21张图片

23年9月

  9月我参加了索尼的创意征文活动,与机器人进行了有趣的互动!
CSDN 年度总结|知识改变命运,学习成就未来_第22张图片

23年10月

  10月我测评了ToDesk 、TeamViewer、AnyDesk远程控制软件稳定性。
CSDN 年度总结|知识改变命运,学习成就未来_第23张图片

CSDN 年度总结|知识改变命运,学习成就未来_第24张图片

23年11月

  11月有点忙,只发了一些送书的文章。
CSDN 年度总结|知识改变命运,学习成就未来_第25张图片

23年12月

  12月忙着学校的期末考试学校的课程,没怎么发博客。

三、这一年取得的成就

粉丝量的进步

热榜第一上过N次
CSDN 年度总结|知识改变命运,学习成就未来_第26张图片
CSDN 年度总结|知识改变命运,学习成就未来_第27张图片
CSDN 年度总结|知识改变命运,学习成就未来_第28张图片

2023年新星计划导师双证书

CSDN 年度总结|知识改变命运,学习成就未来_第29张图片

文心一言使用权
CSDN 年度总结|知识改变命运,学习成就未来_第30张图片
CSDN 年度总结|知识改变命运,学习成就未来_第31张图片

坚果哥受邀西安大会
CSDN 年度总结|知识改变命运,学习成就未来_第32张图片
CSDN 年度总结|知识改变命运,学习成就未来_第33张图片
CSDN 年度总结|知识改变命运,学习成就未来_第34张图片
感谢胡老师的热情款待
CSDN 年度总结|知识改变命运,学习成就未来_第35张图片

钉钉阿里云

CSDN 年度总结|知识改变命运,学习成就未来_第36张图片

索尼征文获奖证书
CSDN 年度总结|知识改变命运,学习成就未来_第37张图片

四、关于编程的新年Flag

  新的一年,大家是否已经准备好迎接新的挑战和机遇了呢?让我们一起立下新年Flag,为自己设定一些小目标,让我的2024更加精彩!

  2024年,我准备学习个新技术, 确定学习一门新的编程语言、框架或工具,并深入了解其特性和用途。并参与开源项目,贡献到开源项目是提高编程技能的好方法。你也可以选择一个感兴趣的项目,解决一些问题或者提出新的功能,这有助于你学习协作开发和提高代码质量的经验。
  2024年,我准备深入研究算法和数据结构,对算法和数据结构的深入了解有助于解决复杂的编程问题。制定计划,逐步学习和应用这些概念,提高解决问题的效率。
  2024年,我准备参与一些编程挑战,每周或每月参与一些编程挑战,例如LeetCode、牛客网等,蓝桥杯也在准备。想找一个自己感兴趣的项目,可能是一个应用、一个网站或者一个工具。通过这个项目,应用所学的知识,锻炼项目管理和开发的技能。并定期学习更新、订阅技术博客、参加技术会议、听取讲座等方式,保持对行业动态的了解,不断更新自己的知识。

五、我的最佳代码实践

  把二叉搜索树转换为累加树,我觉得这是2023年当中做的最有意思的题目。
CSDN 年度总结|知识改变命运,学习成就未来_第38张图片
  给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。
CSDN 年度总结|知识改变命运,学习成就未来_第39张图片

提醒一下,二叉搜索树满足下列约束条件:

  • 节点的左子树仅包含键 小于 节点键的节点。
  • 节点的右子树仅包含键 大于 节点键的节点。
  • 左右子树也必须是二叉搜索树。

递归函数参数以及返回值
这里很明确了,不需要递归函数的返回值做什么操作了,要遍历整棵树。

同时需要定义一个全局变量pre,用来保存cur节点的前一个节点的数值,定义为int型就可以了。

代码如下:

int pre = 0; // 记录前一个节点的数值
void traversal(TreeNode* cur)

确定终止条件
遇空就终止。

if (cur == NULL) return;

确定单层递归的逻辑
注意要右中左来遍历二叉树, 中节点的处理逻辑就是让cur的数值加上前一个节点的数值。

代码如下:

traversal(cur->right);  
cur->val += pre;       
pre = cur->val;
traversal(cur->left);  

递归法整体代码如下:

class Solution {
private:
    int pre = 0; 
    void traversal(TreeNode* cur) { 
        if (cur == NULL) return;
        traversal(cur->right);
        cur->val += pre;
        pre = cur->val;
        traversal(cur->left);
    }
public:
    TreeNode* convertBST(TreeNode* root) {
        pre = 0;
        traversal(root);
        return root;
    }
};

Java
递归

class Solution {
    int sum;
    public TreeNode convertBST(TreeNode root) {
        sum = 0;
        convertBST1(root);
        return root;
    }
    public void convertBST1(TreeNode root) {
        if (root == null) {
            return;
        }
        convertBST1(root.right);
        sum += root.val;
        root.val = sum;
        convertBST1(root.left);
    }
}

迭代

class Solution {
    public TreeNode convertBST(TreeNode root) {
        int pre = 0;
        Stack<TreeNode> stack = new Stack<>();
        if(root == null) //edge case check
            return null;

        stack.add(root);

        while(!stack.isEmpty()){
            TreeNode curr = stack.peek();
            if(curr != null){ 
                stack.pop();
                if(curr.left != null)       
                    stack.add(curr.left);
                stack.add(curr);            
                stack.add(null);
                if(curr.right != null)      
                    stack.add(curr.right);
            }else{
                stack.pop();
                TreeNode temp = stack.pop();
                temp.val += pre;
                pre = temp.val;
            }
        }
        return root;
    }
}

  这一年,我们从平凡中看见风采,在奔忙中体现风格,在时光的斑驳里镌刻下熠熠生辉的印记。讲到这里,我的CSDN 年度总结终于画上了一个圆满的句号。知识改变命运,学习成就未来,感谢CSDN这个平台,让我可以和大家一起交流学习,共同进步,在这一年中,我不仅收获了粉丝量,也结交了许多志同道合的朋友们,也学到了很多知识。2024年我们都会变得更好,一起加油吧!

你可能感兴趣的:(恒川的日常汇报,学习,python,开发语言,机器学习,结对编程)