自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 展平二叉搜索树

展平二叉搜索树给你一棵二叉搜索树,请 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。class Solution { //定义一个容器将中序遍历之后的节点存起来(升序) public List<TreeNode> list = new ArrayList<>(); public TreeNode increasingBST(TreeNode root) { p

2022-04-26 19:06:07 812

原创 开幕式焰火

开幕式焰火开幕式开始了,空中绽放了一颗二叉树形的巨型焰火。给定一棵二叉树 root 代表焰火,节点值表示巨型焰火这一位置的颜色种类。请帮小扣计算巨型焰火有多少种不同的颜色。小刘解题此处求的是节点值得个数,此处可采用HashSet来存储,最后直接返回HashSet的个数。class Solution { public HashSet<Integer> hashSet=new HashSet<>(); public int numColor(TreeNo

2022-04-26 17:10:55 889

原创 二叉搜索树中的搜索

二叉搜索树中的搜索给定二叉搜索树(BST)的根节点root和一个整数值val。你需要在BST中找到节点值等于val的节点。 返回以该节点为根的子树。 如果节点不存在,则返回null。class Solution { public TreeNode searchBST(TreeNode root, int val) { //如果当前节点为空,直接返回null if(root==null){ return null; }

2022-04-26 16:51:13 233

原创 二叉搜索树中两个节点之和

二叉搜索树中两个节点之和给定一个二叉搜索树的根节点root和一个整数k,请判断该二叉搜索树中是否存在两个节点它们的值之和等于k。假设二叉搜索树中节点的值均唯一。小刘解题对于递归函数来说,如果递归函数在return位置,那么在每次执行后就会跳出此次函数层,进入下一层,下一层的返回结果就是最终结果而不是上层里面某个位置的值。class Solution { //定义一个容器用于存放二叉树的值内容 public HashSet<Integer> hashSet = new

2022-04-26 11:15:53 482

原创 检查平衡性

检查平衡性实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过1。小刘解题平衡树:任意一个节点,其两棵子树的高度差不超过1。对于节点A,若其子树为平衡树,那么对于节点A的父节点的判断只需拿A子树的深度与右孩子的深度比较即可。class Solution { public boolean isBalanced(TreeNode root) { return dfs(root)>=0; } //返回

2022-04-26 10:21:42 689

原创 左叶子之和

左叶子之和给定二叉树的根节点 root ,返回所有左叶子之和。小刘解题左叶子:如果一个节点没有左右子树,且其父节点只有该节点一个子节点。class Solution { public int sumOfLeftLeaves(TreeNode root) { return dfs(root); } public int dfs(TreeNode root){ //定义一个变量,该变量记录的是当前节点的左孩子节点的值 // (

2022-04-25 10:47:46 342

原创 对称二叉树

对称二叉树给你一个二叉树的根节点 root , 检查它是否轴对称。小刘解题对称二叉树:根节点的左、右子树是互为镜像的。同时遍历二叉树的两个节点class Solution { public boolean isSymmetric(TreeNode root) { return dfs(root,root); } //同时遍历两个节点(关于根节点对称的两个节点) public boolean dfs(TreeNode leftNode,TreeN

2022-04-25 09:10:41 274

原创 二叉树的镜像

二叉树的镜像请完成一个函数,输入一个二叉树,该函数输出它的镜像。小刘解题镜像二叉树就是原二叉树关于根节点的对称二叉树。二叉树的递归:①递:先进到最底层②归:进行每一次递归函数的操作。将最底层的结果一层一层返回,最后得到根节点的目标值。如果需要需要中间值,可引入全局变量。class Solution { //每一次递归操作都是以当前节点为根节点进行操作 public TreeNode mirrorTree(TreeNode root) { //1、此处为递归的

2022-04-25 07:46:49 189

原创 二叉树的深度

二叉树的深度输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。小刘解题树的深度:也称为树的高度,树中所有节点的层次最大值称为树的深度。二叉树的递归:①递:先进到最底层②归:将最底层的结果一层一层返回,最后得到根节点的目标值。如果需要需要中间值,可引入全局变量。class Solution { //树的深度 public int maxDepth(TreeNode root) { //1、此处为

2022-04-24 21:42:13 336

原创 hudi-0.10.0编译

Hudi-0.10.0的编译一、系统环境二、编译过程三、小结一、系统环境操作系统Linux 3.10.0-862.el7.x86_64 #1 SMP 2018 x86_64 x86_64 x86_64 GNU/Linuxhadoop版本hadoop-3.1.3 maven版本maven-3.8.4maven的镜像源<mirrors> <mirror> <id>alimaven</id> &

2022-02-13 18:35:29 1298

原创 大数据---离线数仓实战项目(四)

离线数仓实战---网站流量日志分析系统一、模块开发---数据生成模块1.1、目标数据1.1.1、页面数据1.1.2、事件数据1.1.3、曝光数据1.1.4、启动数据1.1.5、错误数据1.2、数据埋点1.2.1、主流埋点方式1.2.2、埋点数据上报时机1.2.3、埋点数据日志结构1.3、模拟数据一、模块开发—数据生成模块1.1、目标数据我们要收集和分析的数据主要包括页面数据、事件数据、曝光数据、启动数据和错误数据。1.1.1、页面数据页面数据主要记录一个页面的用户访问情况,包括访问时间、停留时间、

2021-10-03 16:05:12 589

原创 大数据---离线数仓实战项目(三)

离线数仓实战---网站流量日志分析系统一、项目需求及架构设计1.1、项目需求分析1.1.1、此项目需求1.1.2、实际项目需求1.2、项目架构1.2.1、技术选型1.2.2、系统数据流程设计一、项目需求及架构设计在大数据—离线数仓实战项目(二中,介绍了数仓的一些概念,这一部分介绍具体项目需求及架构设计。1.1、项目需求分析1.1.1、此项目需求1、用户行为数据采集平台搭建2、数据仓库维度建模3、分析访客主题,统计的报表指标4、可视化展示1.1.2、实际项目需求1、用户行为数据采集平台搭

2021-10-03 09:10:09 1696

原创 大数据---离线数仓实战项目(二)

离线数仓实战---网站流量日志分析系统一、数仓理论1.1、什么是数据仓库1.2、数据仓库的分层1.2.1、数据仓库的分层1.2.2、数据仓库为什么要分层1.3、数据仓库命名规范1.3.1、表命名1.3.2、脚本命名1.3.3、表字段类型1.4、数据仓库的建模1.4.1、维度表1.4.2、事实表1.4.3、维度模型分类1.4.4、ODS层1.4.5、DIM层和DWD层1.4.6、DWS层与DWT层1.4.7、ADS层一、数仓理论在大数据—离线数仓实战项目(一)中,介绍了网站流量日志分析的背景,这一部分介绍

2021-10-02 09:14:49 2396 1

原创 大数据---离线数仓实战项目(一)

离线数仓实战---网站流量日志分析系统一、 网站流量日志分析背景1.1、网站分析的意义1.2、如何进行网站分析1.2.1、网站流量质量分析(流量分析)1.2.2、网站流量多维度细分(流量分析)1.2.3、网站内容及导航分析(内容分析)1.2.4、 网站转化以及漏斗分析(转化分析)一、 网站流量日志分析背景1.1、网站分析的意义 网站分析,可以帮助网站管理员、运营人员、推广人员等实时获取网站流量信息,并从流量来源、网站内容、网站访客特性等多方面提供网站分析的数据依据。从而帮助提高网站流量,提升网站用户

2021-10-02 08:15:32 1332

原创 大数据---Azkaban快速入门

Azkaban快速入门一、Azkaban的概论1.1、Azkaban的定义1.2、为什么需要工作流调度系统1.3、常见的工作流调度系统1.4、Azkaban 与 Oozie 对比1.5、Crontab的基本使用二、Azkaban的入门2.1、集群模式安装(版本为-3.84.4)2.1.1、上传jar包2.1.2、配置 MySQL2.1.3、 配置 Executor Server(在/opt/module/azkaban/azkaban-exec/下执行)2.1.4、配置 Web Server2.2、Work

2021-10-01 18:32:47 772

原创 大数据---Scala基础入门(二)

基础的使用1、注释2、代码规范3、变量和常量4、标识符的命名规范5、字符串输出6、 键盘输入1、注释Scala 注释使用和 Java 完全一样。1. 单行注释://2. 多行注释:/* */3. 文档注释:/** * * */2、代码规范1. 使用一次 tab 操作,实现缩进,默认整体向右边移动,用 shift+tab 整体向左移2. 或者使用 ctrl + alt + L 来进行格式化3. 运算符两边习惯性各加一个空格4. 一行最长不超过 80

2021-09-28 11:11:05 124

原创 shell基础

shell基础一、shell概述二、shell解析器1、查看系统的默认的shell解析器三、shell脚本入门1、脚本格式2、脚本的常用执行方式四、shell中的变量1、系统变量2、特殊变量3、自定义变量五、运算符六、条件判断七、流程控制1、if判断2、case语句3、for循环八、read读取控制台输入九、shell工具1、cut2、sed3、awk4、sort一、shell概述(1)Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。二、shell解析器1、查看系统的

2021-09-10 16:04:45 109

原创 MySQL面试题1---innodb的表必须指定主键吗

对于Innodb存储引擎的表,尽量手工指定主键。(不是必须手工指定主键)记录默认会按照一定的顺序保存,如果有明确定义的主键,则按照主键顺序保存。如果没有主键,但是有唯一索引,那么就是按照唯一索引的顺序保存。如果既没有主键又没有唯一索引,那么表中会自动生成一个内部列,按照这个列的顺序保存。按照主键或者内部列进行的访问是最快的,所以Innodb表尽量自己指定主键。当表中同时有几个列都是唯一的,都可以作为主键的时候,要选择最常作为访问条件的列作为主键,提高查询的效率。Innodb表的普通索引都会保存主

2021-09-04 09:44:05 988

原创 Redis基础1---Redis-6.0.6的安装(基于Centos7)

Redis基础一、Redis-6.0.6的安装(基于Centos7)1.1、下载步骤:1.2、安装步骤:1.3、启动方式:1.4、其它:一、Redis-6.0.6的安装(基于Centos7)1.1、下载步骤:进入: redis中文官方网站按图所示进行点击(可选择最新稳定版本或者旧版本)注意:Redis 使用标准版本标记进行版本控制:major.minor.patchlevel。偶数的版本号表示稳定的版本, 例如 1.2,2.0,2.2,2.4,2.6,2.8,奇数的版本号用来表示非标准版本,例

2021-06-16 11:17:13 444

原创 并发编程线程基础

线程基础一、什么是线程二、线程的创建与运行1、继承Thread类,重写run()方法2、实现Runnable接口,重写run()方法3、实现Callable接口,重写call()方法三、Object中关于线程的方法介绍四、Thread类的主要方法一、什么是线程1、线程是进程的一个实体,线程本身是不会独立存在的。2、进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程至少有一个线程,进程中的多个线程共享进程的资源。线程是CPU分配的基本单位。

2021-06-08 20:24:19 65

原创 推荐系统---分类

推荐系统的分类1、根据实时性分类离线推荐实时推荐2、根据推荐原则分类基于相似度的推荐基于知识的推荐基于模型的推荐3、根据推荐是否个性化分类基于统计的分类个性化推荐4、根据数据源分类基于人口统计学的推荐基于内容的推荐基于协同过滤的推荐...

2021-05-17 20:34:10 163

原创 CSS3语法

CSS是纯文本格式文件1.CSS3的语法基础1.1构造CSS样式规则1.CSS3的基本语法规则 CSS样式由两部分组成:选择器(selector)和声明块(declaration block),其中选择器和声明块之间可用空格隔开,声明块被一对大括号括起来,花括号之间可以添加一个或多个声明。Selector {Declaration1;Declaration2;Declaration3;....;DeclarationN;}多个声明需要用分号隔开,每个声明由属性和属性值组成,属性是希望设置的样式

2020-12-18 19:48:36 1646

原创 CSS3概述

CSS样式控制着网页的外观,是Web前端开发中不可缺少的重要内容。1.为什么要使用CSS样式在制作网页时,CSS是对HTML语言的有效补充。CSS样式可以轻松地设置网页元素的显示位置和格式,通过CSS样式,能够减少很多重复性地设置,例如网页布局和文字图片等显示方式,还可以使用CSS滤镜,实现图像淡化、网页淡入淡出等特效,在精简代码地同时提升了网页地美观性。1.1什么是CSS样式Cascading Style Sheets(层叠样式表)的缩写,它是一种对Web文档添加样式的简单机制,是一种表现HTML

2020-12-12 16:22:29 420

原创 JavaScript对象编程

JavaScript是基于对象的编程语言,通过对象的组织层次来访问并给对象施以相应的操作方法,可大大简化JavaScript程序设计,并提供直观、模块化的方式进行脚本程序开发。1.文档对象模型(DOM)什么是 DOM?DOM 是 W3C(万维网联盟)的标准。DOM 定义了访问 HTML 和 XML 文档的标准:“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”W3C DOM 标准被分为 3 个不同的部分:核心 DOM - 针

2020-12-12 15:38:34 257

原创 JavaScript对象

JavaScript是面向对象的语言,但JavaScript不使用类。JavaScript中将对象分为三种:本地对象、内置对象、宿主对象。本地对象:是独立于宿主环境的JavaScript预定义对象,内置对象:宿主对象:是JavaScript寄宿环境定义的对象(即DOM和BOM),它们由客户端浏览器环境定义,与JavaScript语言本身没有直接关系。但JavaScript能够控制这些对象的行为,实现对其读写操作。...

2020-12-09 17:22:34 203

原创 JavaScript语言基础

1.数据类型与变量1.1数据类型JavaScript中的数据类型主要包括三类。简单数据类型:JavaScript中常用的3中基本数据类型:数值数据类型(Number)、文本数据类型(String)、布尔数据类型(Boolean)。复合数据类型:复合数据类型主要包括用来用来保存一组相同或不同数据类型的数组;用来保存一段程序,这段程序是可以在JavaScript程序中反复被调用的函数;用来保存一组不同类型的数据和函数等的对象。特殊数据类型:特殊数据类型主要包括没有值存在的空数据类型null;没有进行

2020-12-07 16:57:13 1008

原创 JavaScript概述

JavaScrit概述JavaScript语言作为目前流行的脚本语言,与HTML5密不可分。HTML5中的核心功能基本都需要JavaScript语言的支持。1.JavaScript简介JavaScript作为一种可以给网页增加交互性的脚本语言,拥有近二十年的发展历史。1.1JavaScript是什么JavaScript是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript不仅是一种健壮的、基于对象和事件驱动、并具有相对安全性的客户端脚本语言,同时也是一种广泛用于客户端Web开发的脚

2020-12-07 09:16:32 1280 7

原创 Web前端开发与应用

一、Web前端Web是Internet上最受欢迎的一种多媒体信息服务系统。整个系统由Web服务器、浏览器和通信协议组成。1.1Web前端开发相关概念Web开发分为前端和后端两部分,后端指的是程序、数据库和服务器层面的开发,而前端指的是直接与用户接触的网页,比如布局、特效、交互等。前端开发的主要工作是把UI的设计图按照W3C标准做成HTML页面,用CSS布局,并且用JavaScript脚本语言实现页面上的前端互动。互动效果包括弹出层、页签切换、图片滚动、Ajax异步互动等。Web标准Web开发应用

2020-11-02 14:07:32 1142

原创 课程设计实验--火车票座位分配

火车票座位分配1.1【问题描述】请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。假设一节车厢有 20 排、每一排 5 个座位。为方便起见,我们用 1 到 100 来给所有的座位编号,第一排是 1 到 5 号,第二排是 6 到10 号,依次类推,第 20 排是 96 到 100 号。购票时,一个人可能购一张或多张票,最多不超过 5 张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。1.2【.

2020-05-26 21:10:47 7399 6

原创 二叉树的遍历(DFS和BFS)

树作为特殊的图,所以图的DFS和BFS在树中仍可以使用。以下以二叉树来讲述。深度优先遍历(DFS)深度优先遍历主要思路是从图中一个未访问的顶点 V 开始,沿着一条路一直走到底,然后从这条路尽头的节点回退到上一个节点,再从另一条路开始走到底,不断递归重复此过程,直到所有的顶点都遍历完成。深度优先遍历(BFS)(1)递归实现public void dfs(Node node) { if(...

2020-04-23 22:01:07 467

原创 数据结构---二叉树(手动创建及遍历)

二叉树1.定义:每个结点至多只有两棵子树(二叉树的度不大于2),二叉树的子树有左右之分,其次序不能任意颠倒。2.性质:(1)在二叉树的第i层至多有个2^(i-1)节点(i>=1)。(2)深度为k的二叉树至多有2^k-1个节点(k>=1)。(3)对任何一个二叉树T,如果其叶子树为n0,度为2的结点数为n2,则n0=n2+1。(4)...

2020-04-22 10:07:31 449

原创 数据结构---树(树的定义和基本术语)

从今天开始,开始记录数据结构。先从树开始,以续篇的方式完成。树的结构定义是一个递归的定义,即在树的定义中又用到树的概念,它道出了树的固有概念。1.树(Tree)是n(n>=0)个结点的有限集。在任意一棵非空树中:(1)有且只有一个特定的称为根(Root)的结点;(2)当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每一个 集合本身又是...

2020-04-21 18:20:05 1014

原创 最小延迟调度问题(java实现)

最小延迟调度问题(贪心算法可获得最优解):给定等待服务的客户集合A={1,2,…,n},预计对客户i的服务时长为ti>0,T={t1,t2,…,tn), 客户i希望的服务完成时刻为di>0, D={d1,d2,…,dn};一个调度f:A→N, f(i)为客户i的开始时刻,如果对客户i的服务在di之前结束,那么对客户i的服务没有延迟,即如果在di之后结束,那么这个服务就被延迟了,延迟的...

2020-04-06 09:52:59 2396

原创 多机调度问题(Java实现)

多机调度问题(贪心算法)问题:设有n个独立的作业{1, 2, …, n},由m台相同的机器{M1, M2, …, Mm}进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但不可间断、拆分。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。思想:贪心法求解多机调度问题的贪心策略是最长处理时间作业优先,即...

2020-04-04 09:53:18 3282

原创 背包问题(java实现)

用贪心算法解决一般背包问题。背包问题给定N种物品和一个容量为MAX_WEIGHT的背包,物品i的重量是weight[i],其价值为price[i],背包问题是如何选择装入背包的物品,使得装入背包中物品的总价值最大?从物品可不可以分割,背包问题可以划分为0-1背包问题和普通背包问题。0-1背包问题适合用动态规划求解,用贪心算法获不的最优解。普通背包问题可用贪心算法求得最优解。对于普通背包...

2020-04-01 18:29:56 2066 1

原创 最小生成树之普里姆算法(贪心算法思想)

最小生成树的求法普遍有普里姆算法和克鲁斯卡尔算法。这篇文章主要介绍一下我自己对普里姆算法的理解,适合所有人的学习。最小生成树:概念:给定一个带权的无向连通图 ,如何选取一颗生成树,使树上所有边上权的总和为最小,这叫最小生成树。特点:1)n个顶点,一定有n-1条边;2)包含全部顶点;3)n-1条边都在图中。以下例来具体说明。求其最小生成树普里姆算法:假设G=(V,E)是联通网,T...

2020-03-19 15:01:57 1209

原创 KMP算法

KMP算法用来解决字符串匹配问题。要理解KMP算法,首先要理解部分匹配值的概念。对于一个字符串,我们先讨论它自身的性质——“前缀”和“后缀”:前缀是指除了最后一个字符以外,一个字符串的全部头部组合;后缀是指除了第一个字符以外,一个字符串的全部尾部组合。部分匹配值就是前缀和后缀的最长共有元素的长度。例1)A的前缀为无,后缀为无,所以部分匹配值为0.2)AA的前缀为A,后缀为A,两个相...

2020-02-23 11:25:29 171

原创 判断一个整数是否是回文(JAVA语言 栈结构)

这是自己第一次写博客,如有不当,敬请谅解。首先,什么是回文?直接举例子:121,我为人人,人人为我,就是回文,我爱你就不是回文。然后说一下自己的解题思路:1)将整数转换为字符串型。int x=520025;String input = Integer.toString(x);2)利用栈的性质(后进先出)和charAt()方法将字符串以单个字符的形式压栈。Stack s = new ...

2020-02-11 19:35:46 378

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除