part
[代码随想录]Day26-回溯算法part06
## 题目:[332. 重新安排行程](https://leetcode.cn/problems/reconstruct-itinerary/) ### 思路: 其实这里已经是图的部分了,回溯应该也可以。Hierholzer算法解决欧拉问题 ### 代码: ```go func findItiner ......
day15 - 二叉树 part02
102. 二叉树的层序遍历 详解 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), l ......
[代码随想录]Day25-回溯算法part05
## 题目:[491. 递增子序列](https://leetcode.cn/problems/non-decreasing-subsequences/ "491. 递增子序列") ### 思路: 核心问题——同层去重,这一题不能够重新排序因此不可以用`i > index && nums[i] == ......
day14 - 二叉树part01
144. 二叉树的前序遍历 详解 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), l ......
day13 - 栈与队列part03
239. 滑动窗口最大值 详解 // 队列que是STL的双向队列deque // 队列存放的是元素在序列中的序号 //参考https://www.jianshu.com/p/e59d51e1eef5 class Solution { public: vector<int> maxSlidingWi ......
[代码随想录]Day24-回溯算法part04
## 题目:[93. 复原 IP 地址](https://leetcode.cn/problems/restore-ip-addresses/ "93. 复原 IP 地址") ### 思路: 1. 函数参数:参数就一个stirng,path先收集ip地址的四个部分,最后存入res中时拼接成一个str ......
day11 - 栈与队列part02
20. 有效的括号 详解 class Solution { public: bool isValid(string s) { //最里面一对是相邻闭合 stack<char> stack_1; for(int i=0; i< s.length(); i++){ if(s[i] == '(' || s ......
[代码随想录]Day23-回溯算法part03
## 题目:[39. 组合总和](https://leetcode.cn/problems/combination-sum/description/ "39. 组合总和") ### 思路: 一样的递归套路: 1. 函数参数:因为要求和,所以有一个当前和的参数;另外因为**要保证没有重复的结果**,所 ......
《代码整洁之道 Clean Code》学习笔记 Part 1 - 命名、注释、格式
> 前段时间在看《架构整洁之道》,里面提到了:构建一个好的软件系统,应该从写整洁代码做起。毕竟,如果建筑使用的砖头质量不佳,再好的架构也无法造就高质量的建筑。趁热打铁,翻出《代码整洁之道》再刷一遍。 # 《代码整洁之道 Clean Code》学习笔记 Part 1 ### 衡量代码质量的唯一标准:W ......
[代码随想录]Day22-回溯算法part02
## 题目:[216. 组合总和 III](https://leetcode.cn/problems/combination-sum-iii/) ### 思路: 多加一个记录和的参数,还有一个起始位置的参数(不重复就得加) 结束条件是个数到了k: 1. 如果此时sum == n那就说明答案正确 2. ......
[代码随想录]Day21-回溯算法part01
## 题目:[77. 组合](https://leetcode.cn/problems/combinations/) ### 思路: 回溯就是dfs的一个特殊情况也就是递归的一种情况,值得注意的一点: 要记得深拷贝,不然最后全是空 ### 代码: ```go var res [][]int var ......
day10 - 栈与队列part01
232. 用栈实现队列 详解 class MyQueue { public: stack<int> st_in; stack<int> st_out; MyQueue() { } void push(int x) { st_in.push(x); } int pop() { if(st_out.em ......
DAY 04 ~JAVA 基礎語法 Part 2(類型轉換/變量與常量/運算符/包機制/JAVADOC)
# JAVA 基礎語法 Part 2 ## 類型轉換 - 由於JAVA士強類型語言,所以要進行運算的時候,需要用到類型轉換 ```java 低 >高 byte,short,char-> int-> long-> float-> double ``` - 運算中,不同類型的數據先轉化為同一類型,然後進 ......
[代码随想录]Day20-二叉树part09
## 题目:[669. 修剪二叉搜索树](https://leetcode.cn/problems/trim-a-binary-search-tree/) ### 思路: 遍历到的值小于最小值,说明左子树里的所有节点都小于最小值,舍弃左子树。 遍历到的值大于最大值,说明右子树里的所有节点都大于最大值 ......
[代码随想录]Day19-二叉树part08
## 题目:[235. 二叉搜索树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/) ### 思路: BST和普通二叉树不同的一点是可以根据特性来找最近公共祖先,只要找到第一个值 ......
day08-字符串part01
344. 反转字符串 详解 class Solution { public: void reverseString(vector<char>& s) { int left = 0; int right = s.size() - 1; while(left <= right){ // char tmp ......
day07 - 哈希表part02
454. 四数相加 II 讲解 class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) { //map unor ......
[代码随想录]Day18-二叉树part07
## 题目:[530. 二叉搜索树的最小绝对差](https://leetcode.cn/problems/minimum-absolute-difference-in-bst/) ### 思路: 一个关键问题——BST的中序遍历是由小到大的顺序,也就是说记录遍历的前一个节点,每次比较当前节点-前一 ......
day06 - 哈希表part01
242. 有效的字母异位词 讲解 class Solution { public: bool isAnagram(string s, string t) { if(s.length() != t.length()) return false; map<char, int> map_s; map<ch ......
day34 贪心算法part3
[1005.K次取反后最大化的数组和](https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/description/) ![](https://img2023.cnblogs.com/blog/1076992/20 ......
[代码随想录]Day17-二叉树part06
## 题目:[654. 最大二叉树](https://leetcode.cn/problems/maximum-binary-tree/) ### 思路: 和前中序构造树差不多的方法,以前是返回值,现在是返回树 ### 代码: ```go /** * Definition for a binary ......
day04 - 链表part02
24. 两两交换链表中的节点 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * Lis ......
day03 - 链表part01
203. 移除链表元素 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNo ......
[代码随想录]Day16-二叉树part05
## 题目:[513. 找树左下角的值](https://leetcode.cn/problems/find-bottom-left-tree-value/) ### 思路: 层序遍历是最好的选择了,先放右节点,再放左节点最后一个元素就是最左侧的节点。 说白了层序遍历就是广度优先搜索BFS。 ### ......
[代码随想录]Day15-二叉树part04
## 题目:[110. 平衡二叉树](https://leetcode.cn/problems/balanced-binary-tree/) ### 思路: ![20210203155515650.png](https://s2.loli.net/2023/08/11/zAjhQ2sON5WXaTd ......
[代码随想录]Day14-二叉树part03
## 题目:[104. 二叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-binary-tree/) ### 思路: 本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。 - 二叉树节点的深 ......
[代码随想录]Day13-二叉树part02
## 题目:[102. 二叉树的层序遍历](https://leetcode.cn/problems/binary-tree-level-order-traversal/) ### 思路: 先把根放进去,然后每次都是左右就可以了。 记录一个深度,当`len(res) == deepth`的时候就说明 ......
Part1--软件规范总纲
# 开发人员规范 ## 软件代码编写规范 > 套话 ## 代码提交及审核自测规范 ### 代码静态检查 ### git代码提交规范 ## 临时版本规范 ## TD规范 ## 问题记录规范 ......
[代码随想录]Day12-二叉树part01
今天的题目就是二叉树的前中后序遍历,目前只写了递归方法,之后再补迭代方法。 ## 题目:[144. 二叉树的前序遍历](https://leetcode.cn/problems/binary-tree-preorder-traversal/) ### 思路: 前序遍历:根-左-右 ### 代码1: ......