02 2025 档案
摘要:110.平衡二叉树 需要知道左右子树的高度后才知道中间节点是否平衡,故采用后序遍历,只要找到一个不平衡的节点则不是平衡二叉树 使用全局变量bool is_balanced = 1;记录是否存在不平衡节点,出现不平衡节点则将该标志更新为0,表示不平衡 点击查看代码 class Solution { p
阅读全文
摘要:226.翻转二叉树 先序后序均可,不能中序,会导致一颗子树被反复翻转 点击查看代码 class Solution { public: void Travesal(TreeNode *root) { if(root == nullptr) return; swap(root->left, root->
阅读全文
摘要:二叉树节点定义 点击查看代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), lef
阅读全文
摘要:150.逆波兰表达式求值 栈的应用:后缀表达式求值 点击查看代码 class Solution { public: int evalRPN(vector<string>& tokens) { stack<int> stk; for(int i = 0; i < tokens.size(); ++i)
阅读全文
摘要:栈的常用接口: stack stk; stk.push(10); stk.pop(); stk.top() //返回栈顶元素的引用,可作为左值,也可作为右值 stk.empty() //判空 stk.size() 队列的常用接口: queue que; que.push(10); que.pop()
阅读全文
摘要:151.翻转字符串里的单词 点击查看代码 class Solution { public: void reverseStr(string &str, int left, int right) { while(left < right) { swap(str[left], str[right]); +
阅读全文
摘要:344.反转字符串 点击查看代码 class Solution { public: void reverseString(vector<char>& s) { //注意循环条件不能写成i != j,当s.size()为偶数时,i、j并不会落到同一位置 for(int i = 0, j = s.siz
阅读全文
摘要:454.四数相加Ⅱ map作为哈希表 点击查看代码 class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
阅读全文
摘要:哈希表概述 哈希表是根据key值直接进行访问的数据结构,一般用于快速查询一个元素(key值)是否出现过,是否在一个集合中,查询时间复杂度为O(1)。 常见的三种用于作哈希表的数据结构: 1、数组 本质上存放的也是键值对,只不过key值是数组下标 一般使用数组来做哈希的题目,是因为题目都限制了数值的大
阅读全文
摘要:24.两两交换链表中的节点 点击查看代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {}
阅读全文
摘要:定义、创建、初始化一个链表节点 点击查看代码 Definition for singly-linked list. struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(in
阅读全文
摘要:209.长度最小的子数组 (滑动窗口) 解法一:自创暴力解,先遍历完所有长度为1的子数组,再遍历所有长度为2的子数组,以此类推 点击查看代码 class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { //
阅读全文
摘要:704.二分查找 点击查看代码 class Solution { public: int search(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1; //左闭右闭区间 while(left <= rig
阅读全文