yfchenkeepgoing / yfchenkeepgoing.github.io Goto Github PK
View Code? Open in Web Editor NEWYifanChen's blog
YifanChen's blog
https://yfchenkeepgoing.github.io/2024/01/21/Django-Project-Summary/
Django项目总结项目介绍Game based on Django framework, developed by yifanChen Websitehttps://app5894.acapp.acwing.com.cn/ Repositoryhttps://github.com/yfchenkeepgoing/Django_app Gameplay Right-click to move Le
https://yfchenkeepgoing.github.io/2024/01/21/How-to-Migrate-and-Restart-a-Cloud-Server/
迁移云服务器1、租云服务器,配置其免密登录将本地的公钥复制到云服务器的~/.ssh/authorized_keys中,或者使用云服务器平台提供的密钥,在本地的.ssh文件夹中添加密钥在本地的位置第一次登录云服务器(未配置免密登录)的具体流程可以参照以下步骤: IR_Group_7_project Demo Instruction Login our VM instanceMove key to
https://yfchenkeepgoing.github.io/2024/05/01/Day-24-Theory-of-Backtracking-Algorithms-Leetcode-77/
链接理论基础77. 组合 知识理论基础什么是回溯法回溯算法比较抽象,因此较难。 回溯和递归是相辅相成的,有递归就会有回溯。回溯的逻辑一般隐藏在递归函数的下面。二叉树在递归的过程中会有回溯的操作,只不过有的题目显式地用到了回溯,有的题目没有显式地用回溯。回溯函数一般指递归函数,因为没有一个函数可以完全用来回溯。 回溯法的效率:回溯法是纯暴力的搜索,并不是一个高效的算法。如果想让回溯法高效一些,可以加
https://yfchenkeepgoing.github.io/2024/02/01/Day-8-Leetcode-344-541-k54-151-k55/
链接344.反转字符串541. 反转字符串II卡码网:54.替换数字151.翻转字符串里的单词卡码网:55.右旋转字符串 知识541. 反转字符串II一般来说,编程语言自己实现的库函数都是左闭右开的,因此reverse(s, i, i + k)表示的是反转字符串s的第i位到第i + k位,不包含第i + k位。 卡码网:54.替换数字151.翻转字符串里的单词卡码网:55.右旋转字符串初次尝试34
https://yfchenkeepgoing.github.io/2024/05/02/Day-25-Leetcode-216-17/
链接216.组合总和III17.电话号码的字母组合 知识216.组合总和III17.电话号码的字母组合初次尝试216.组合总和III针对本题,我沿用上题77. 组合的代码,只是在终止条件中添加了条件:sum(path) == n,并在单层搜索逻辑中将终止条件改为i = 9,即可解决本题。据此,我独立写出了本题的代码:12345678910111213141516171819202122232425
https://yfchenkeepgoing.github.io/2024/04/24/Day-23-Leetcode-669-108-538-summary/
链接669. 修剪二叉搜索树108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树 总结篇 知识669. 修剪二叉搜索树108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树总结篇初次尝试669. 修剪二叉搜索树108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树总结篇实现669. 修剪二叉搜索树108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累
https://yfchenkeepgoing.github.io/2024/05/27/Day-30-Leetcode-332-51-37/
链接332.重新安排行程51. N皇后37. 解数独总结 知识332.重新安排行程51. N皇后37. 解数独总结初次尝试332.重新安排行程51. N皇后37. 解数独总结实现今天这三道题都非常难,那么这么难的题,为啥一天做三道? 因为一刷也不求能把这么难的问题解决,所以一刷的时候,就了解一下题目的要求,了解一下解题思路,不求能直接写出代码,先大概熟悉一下这些题,二刷的时候,随着对回溯算法的深
https://yfchenkeepgoing.github.io/2024/01/20/Typora/?
(1)标题一级标题二级标题三级标题四级标题五级标题六级标题(2)快捷键普通模式和源代码模式:ctrl+/md语法正确显示需要在有文字的一行后面再空一行,把鼠标放在有文字的最后一行的后两行的位置 标题:按下ctrl和+,则当前行变成第六级的标题,每按一次ctrl和+则当前标题的等级提升一级。按下ctrl和-则是按下ctrl和+的逆向操作。 (3)字体加粗倾斜斜体加粗删除线 (2删除线2)==高亮
https://yfchenkeepgoing.github.io/2024/03/07/Summary-of-full-stack-netflix-clone/
技术栈 Frontend: React Server-side Rendering: Next.js Styling: Tailwind CSS Data abstraction layer: Prisma Storage: MongoDB Authentication: NextAuth Deploy: Vercel Typescript the entire website fully Th
type: tagscomments:false
https://yfchenkeepgoing.github.io/2024/01/31/Day-7-Leetcode-454-383-15-18/
链接454.四数相加II383. 赎金信15. 三数之和18. 四数之和哈希表总结篇 知识454.四数相加IIcpp中的map中的value是支持++操作的,且value可以通过key直接索引到,就像普通的数组那样。 383. 赎金信 不仅对vector可以用范围遍历,对string类型的变量和普通的数组也可以用范围遍历的写法来简化代码。似乎范围遍历的速度要稍快于普通的for循环遍历。 cpp中
https://yfchenkeepgoing.github.io/2024/01/29/Day-6-Leetcode-242-349-202-1/
链接哈希表理论基础242.有效的字母异位词349. 两个数组的交集202. 快乐数1. 两数之和 知识哈希表理论基础哈希表->哈希函数->哈希碰撞->拉链法/线性探测法->常见的三种哈希结构->set & map及如何选取->总结 哈希表哈希表是根据关键码的值而直接进行访问的数据结构。举例:其实数组就是一张哈希表。哈希表中关键码就是数组的索引下标,然后通
https://yfchenkeepgoing.github.io/2024/01/26/Day-3-Leetcode-203-707-206/
链接链表理论基础203.移除链表元素707.设计链表206.反转链表 知识链表理论基础链表是一种通过指针串联在一起的线性结构。每个节点等于数据域+指针域(存放指向下一个节点的指针)。最后一个节点的指针域指向null。头节点head。 单链表、双链表:既可以向前查询也可以向后查询。循环链表:链表首尾相连(解决约瑟夫环问题) 链表在内存中不是连续分布的。其通过指针域的指针链接在内存中的各个节点。 链
https://yfchenkeepgoing.github.io/2024/05/03/Day-26-Leetcode-39-40-131/
链接39.组合总和40.组合总和II131.分割回文串 知识39.组合总和40.组合总和II131.分割回文串初次尝试39.组合总和本题是集合里元素可以用无数次,那么和组合问题的差别,其实仅在于startIndex上的控制。本题若是想不重不漏,则下一层遍历的起始位置应该与上一层取出的数相同。而对于组合问题,下一层遍历的起始位置应该是上一层取出的数的下一个(因为组合问题中的元素不能重复使用)。据此,
https://yfchenkeepgoing.github.io/2024/01/29/Day-5-Leetcode-242-349-202-1/
链接哈希表理论基础242.有效的字母异位词349. 两个数组的交集202. 快乐数1. 两数之和 知识哈希表理论基础哈希表->哈希函数->哈希碰撞->拉链法/线性探测法->常见的三种哈希结构->set & map及如何选取->总结 哈希表哈希表是根据关键码的值而直接进行访问的数据结构。举例:其实数组就是一张哈希表。哈希表中关键码就是数组的索引下标,然后通
https://yfchenkeepgoing.github.io/2024/01/27/Day-4-Leetcode-24-19-160-142/
主要记录算法和web开发方面的心得体会
https://yfchenkeepgoing.github.io/2024/04/19/Day-19-Leetcode-654-617-700-98/
链接654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树 知识700.二叉搜索树中的搜索什么是二叉树搜索树?其根节点要比左子树里所有节点的数值大,根节点要比右子树里所有节点的数值小。同理,左右子树也符合这个规则。二叉搜索树的上述规则确定了遍历顺序(既不是前序,也不是中序、后序),而二叉搜素树的上述规则也让本题的迭代写法特别简单。 if (node != NULL
https://yfchenkeepgoing.github.io/2024/02/15/Day-15-Leetcode-Breadth-first-traversal-226-101/
链接层序遍历226.翻转二叉树101. 对称二叉树 知识层序遍历二叉树的层序遍历相当于图论中的广度优先搜索。leetcode 102:层序输出二叉树。 1234567graph TD; A[6] --> B[4]; A --> C[7]; B --> D[1]; B --> E[3]; C --> F[5] C --> G[8
https://yfchenkeepgoing.github.io/2024/04/21/Day-20-Leetcode-530-501-236/
链接530.二叉搜索树的最小绝对差501.二叉搜索树中的众数236. 二叉树的最近公共祖先 知识501.二叉搜索树中的众数236. 二叉树的最近公共祖先初次尝试530.二叉搜索树的最小绝对差本题虽然是个easy题,但我想不出来怎么做。唯一的思路是双指针,至于怎么递归,按照怎样的顺序,我想不出来。 501.二叉搜索树中的众数本题显然又要充分利用二叉搜索树的特性:中序遍历二叉搜索树,得到的数组是递增的
https://yfchenkeepgoing.github.io/2024/02/20/Day-17-Leetcode-110-257-404/
链接110.平衡二叉树257. 二叉树的所有路径404.左叶子之和 知识257. 二叉树的所有路径404.左叶子之和初次尝试110.平衡二叉树先尝试递归解法。我写下了如下的代码,可以运行成功,但时间复杂度较高:123456789101112131415161718192021222324252627282930class Solution {public: // 求最大根节点的最大
https://yfchenkeepgoing.github.io/2024/02/18/Day-16-Leetcode-104-559-111-222/
链接104.二叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数 知识104.二叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数初次尝试104.二叉树的最大深度我看到本题后,发现本题在层序遍历里面做过,就用层序遍历先求解。写出了如下代码:12345678910111213141516171819202122class Solution {public:
https://yfchenkeepgoing.github.io/2024/05/06/Day-27-Leetcode-93-78-90/
链接93.复原IP地址78.子集90.子集II 知识93.复原IP地址 cpp中的string是有pop_back方法的,用于弹出字符串中的最后一个元素。 字符串中在i的后面插入一个逗点 1s.insert(s.begin() + i + 1 , '.'); 删除特定位置处的逗点 1s.erase(s.begin() + i + 1); 初次尝试93.
https://yfchenkeepgoing.github.io/2024/01/20/Blog/
如何搭建和维护个人博客个人博客的实现方式使用GitHub Pages和Hexo框架搭建和维护个人博客 博客结构本博客计划同时按照标签页(tags)和分类页(categories)进行分类。分类是更大的范畴,主要分为算法、web开发、工具使用、个人随笔和找工记录五大类。标签页是更小的范畴,有Python, C++, Java, Django, Springboot, Typora, GitHub P
https://yfchenkeepgoing.github.io/2024/01/30/How-to-Understand-an-Open-Source-Project/
快速了解项目 从0带读Java小说项目。项目:小说精品屋 首先看代码的简介(README),然后看代码的更新频率(几年没更新的就不用看了)。 接着看项目的介绍,看项目的技术栈和我们自己的技术栈是否匹配。 接着看包结构(项目结构)。 看技术选型。高级的技术:ShardingSphere-JDBC(数据库分库分表支持)、分布式缓存支持、搜索引擎服务、开源消息中间件、文件存储、对象存储。 接着看核心:项
链接理论基础递归遍历迭代遍历统一迭代 知识理论基础二叉树的种类解题过程中二叉树有两种主要的形式:满二叉树和完全二叉树(完全二叉树包含满二叉树,满二叉树一定是完全二叉树) “度”是指一个节点拥有的子节点的数量 满二叉树满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。也可以说深度为k,有2^k-1个节点的二叉树。 完全二叉树完全二叉树:除了最
https://yfchenkeepgoing.github.io/2024/02/22/Full-Stack-Netflix-Clone/
Netflix Clonetech stack Frontend: React Server-side Rendering: Next.js Styling: Tailwind CSS Data abstraction layer: Prisma Storage: MongoDB Authentication: NextAuth Deploy: Vercel Typescript the enti
https://yfchenkeepgoing.github.io/2024/05/10/LeetCode-problems-prepared-for-a-TikTok-interview/
https://yfchenkeepgoing.github.io/2024/02/05/Day-11-Leetcode-20-1047-150/
链接20. 有效的括号1047. 删除字符串中的所有相邻重复项150. 逆波兰表达式求值 知识20. 有效的括号 cpp中,将一个个字母存储在stack中,用stack或者stack都是一样的。若是stack,则字符以ascii码的形式存储。 在Linux系统中,cd(change directory)命令用于更改当前工作目录。它
https://yfchenkeepgoing.github.io/2024/02/04/Day-10-Leetcode-232-225/
链接理论基础232.用栈实现队列225. 用队列实现栈 知识理论基础232.用栈实现队列225. 用队列实现栈初次尝试232.用栈实现队列225. 用队列实现栈实现232.用栈实现队列225. 用队列实现栈心得与备忘录232.用栈实现队列225. 用队列实现栈
https://yfchenkeepgoing.github.io/2024/04/23/Day-22-Leetcode-235-701-450/
链接235. 二叉搜索树的最近公共祖先701.二叉搜索树中的插入操作450.删除二叉搜索树中的节点 初次尝试235. 二叉搜索树的最近公共祖先拿到本题,我发现这道题和236. 二叉树的最近公共祖先基本相同,只不过二叉树的条件被增强为二叉搜索树。我首先尝试用236题的思路和代码解决本题。据此,我独立写出了以下的代码:123456789101112131415161718class Solution
https://yfchenkeepgoing.github.io/2024/02/06/Day-13-Leetcode-239-347-summary/
链接239. 滑动窗口最大值347.前 K 个高频元素栈与队列总结 知识239. 滑动窗口最大值347.前 K 个高频元素栈与队列总结初次尝试239. 滑动窗口最大值本题应该有些类似于滑动窗口的经典题目:209.长度最小的子数组。本题的思路:用一个长度始终为3的队列,滑过数组。每次算出队列中的最大值,然后存入数组中。我打算另写一个函数来返回三个值中的最大值。但是应该是有办法在队列进出元素的时候顺便
https://yfchenkeepgoing.github.io/2024/03/12/Day-18-Leetcode-513-112-106/
链接513.找树左下角的值112. 路径总和,113. 路径总和ii106.从中序与后序遍历序列构造二叉树,105.从前序与中序遍历序列构造二叉树 知识106.从中序与后序遍历序列构造二叉树vector lm(inorder.begin(), inorder.begin() + i);创建了一个左闭右开的区间。在C++中,std::vector的这个构造函数接受两个迭代器作为
https://yfchenkeepgoing.github.io/2024/02/03/Day-9-Leetcode-28-459-summary/
链接28. 实现 strStr()459.重复的子字符串字符串:总结篇双指针总结篇 知识KMP算法理论KMP与解决的问题KMP:发明本算法的三位学者的英文名首字母 应用:字符串匹配问题 经典例子: 给出文本串: aabaabaaf 给出模式串: aabaaf求在文本串中是否出现过模式串 暴力方法与KMP暴力解法:两重for循环,先遍历文本串,再遍历模式串,挨个匹配。从文本串的首位开始,若模
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.