【算法刷题笔记】144. 二叉树的前序遍历,145. 二叉树的后序遍历,94. 二叉树的中序遍历,102. 二叉树的层序遍历
144. 二叉树的前序遍历 题目描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入: root = [1,null,2,3] 输出: [1,2,3] 示例 2: 输入: root = [1,2,3,4,5,null,8,null,null,6,7,9] 输出: [1,2,4,5,6,7,3,8,9] 示例 3: 输入: root = [] 输出: [] 示例 4: ...
基于 Vue + Java 的刷题优惠券项目设计方案
文章目录 基于 Vue + Java 的刷题优惠券项目设计方案一、项目概述二、前端设计与实现(一)技术选型与环境搭建(二)页面布局与组件设计 三、后端设计与实现(一)技术选型与架构设计(二)数据库设计(三)Redis 缓存策略(四)Redisson 分布式锁处理秒杀券(五)接口设计与实现 基于 Vue + Java 的刷题优惠券项目设计方案 在当今数字化学习与营销相结合的趋势下,刷题优惠券项目能够有...
【Hot100算法刷题集】哈希-02-字母异位词分组(含排序构造键、自定义键、自定义哈希函数法)
题目转载 题目描述 🔒link->题目跳转链接 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 题目示例 题目提示 ● 1 1 1 <= strs.length <= 1 0 4 10^4 104 ● 0 0 0 <= strs[i].length <= 100 100 100 ● strs[i] 仅包含小...
【oj刷题】滑动窗口篇:滑动窗口的应用场景和注意事项
前言: 目录 一、什么是滑动窗口? 二、滑动窗口的原理 三、滑动窗口的算法实现 四、滑动窗口的例题讲解 4.1. 长度最小的子数组 4.2 无重复字符的最长子串 4.3 找到字符串中所有字母异位词 一、什么是滑动窗口? 下面我们通过一道例题来具体的看一下滑动窗口是什么: 理解完题意之后我们就来看一下下面的讲解: 二、滑动窗口的原理 三、滑动窗口的算法实现 简单滑动窗口:假设窗口大小为k,数据序列为S,...
华为OD刷题C卷 - 每日刷题 21(按身高和体重排队,解密犯罪时间)
三段代码分别解决了三个不同的算法问题,下面是对它们的概述: 1、(按身高和体重排队): 这段代码是解决“按身高和体重排队”的问题。它提供了一个Java类Main,其中包含main方法,用于根据学生的身高和体重对学生进行排序,并输出排序后的学生编号。 main方法首先读取学生数量n,然后读取每个学生的身高和体重,存储到HashMap中。接着,使用StringJoiner来构建最终的排序结果字符串。通过...
【C++刷题】优选算法——前缀和
【模板】前缀和 int main(){ int n, q; cin >> n >> q; vector<long long> v(n+1, 0); for(int i = 1; i <= n; ++i) { cin >> v[i]; v[i] += v[i-1]; } int l, r; while(cin >> l >> r) { cout << v[r] - v[l - 1] << endl;...
【LeetCode刷题】前缀和解决问题:742.寻找数组的中心下标、238.除自身以外数组的乘积
【LeetCode刷题】Day 15 题目1:742.寻找数组的中心下标思路分析:思路1:前缀和思想 题目2:238.除自身以外数组的乘积思路分析思路1:前缀和思想 题目1:742.寻找数组的中心下标 思路分析: 其实题干说的很明白了,就是在表述,某个位置的前半部分数组和与后半部分数组和的结果相同,就是中心下标。 这里明显就是前缀和来求解。 思路1:前缀和思想 前半部分的和与后半部分的和分别用:前缀...
【LeetCode刷题】专题三:二分查找模板
【LeetCode刷题】Day 11 专题三:二分查找模板:1. 朴素二分模板:2. 区间左值模板:3. 区间右值模板: 题目1:704. 二分查找思路分析:思路1:朴素二分查找O(logN) 题目2:34. 在排序数组中查找元素的第一个和最后一个位置思路分析:思路1:区间左右值二分查找 O(logN) 专题三:二分查找模板: 根据题干分析,根据二分性,划分区间,得出二分最重要的几个要点: 判断条件...
【C++刷题】优选算法——递归第四辑
记忆化搜索篇 什么是记忆化搜索? 带 备忘录 的递归 如何实现记忆化搜索? a.添加一个备忘录 b.每次递归返回的时候,把结果放到备忘录里c.每次递归进入的时候,先查看一下备忘录 记忆化搜索 vs 常规动态规划: 相同点: 都是暴力解法(暴搜)优化方式都是把已经计算出的结果存起来 不同点: 记忆化搜索是递归形式常规动态规划是递推(循环)形式 问题: 所有的递归(暴搜、深搜),都能改成记忆化搜索吗? ...
【C++刷题】优选算法——递归第三辑
floodfill篇 图像渲染 unordered_multimap<int, int> direction = { {0, 1}, {0, -1}, {1, 0}, {-1, 0}};void dfs(vector<vector<int>>& image, int sr, int sc, int color, int val){ image[sr][sc] = color; for(auto...