- 博客(21)
- 收藏
- 关注
原创 面试小知识(五)
环形链表II其实就是寻找环形链表的那个入口,我还是写最容易理解的方法,即适用hashmap作为缓存public class Solution { public ListNode detectCycle(ListNode head) { ListNode pos = head; Set<ListNode> visited = new HashSet<ListNode>(); while (pos != null) {
2021-05-12 21:46:40
80
原创 面试小知识(四)
判断链表是否有环其实这个题目的基本思想依然是快慢指针,只是需要换一种思考方式,即如果链表中存在环,那么慢指针总会追上慢指针。public class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListNode fast = head.next, sl
2021-05-11 19:19:34
72
原创 面试小知识(三)
两个链表的第一个公共节点首先,这道题是有最简单(代码最简单)的解法的,现复制如下:public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode h1 = headA, h2 = headB; while (h1 != h2) { h1 = h1 == null ? headB : h1.next;
2021-05-10 15:10:25
77
原创 面试小知识(一)
寻找链表的倒数第k个节点class Solution { //思路其实就是同向双指针 //一前一后两个指针,前指针指向第k个节点,后指针指向头节点 //当前指针到达末尾的时候,后指针正好指向第n - k个节点 public ListNode getKthFromEnd(ListNode head, int k) { if (head == null) { return null; } ListNode
2021-05-09 11:02:41
67
原创 面试小知识(二)
合并两个排序列表其实只要是合并两个集合,无论是数组还是列表,都应该与MergeSort的Merge阶段类似,即只看重第一个(或最后一个)元素,在比较大小后放入新排序的集合。对于链表而言,无论何时,创建一个dummyNode一般都有用。class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode dummy = new ListNode(0); ListNod
2021-05-09 10:50:13
289
原创 Sqoop与Mysql的一些注意
权作记录。1.安装对应jar其实就是安装与MySql版本对应的jar包,以下为地址,下载后拷贝到sqoop下的路径。https://downloads.mysql.com/archives/c-j/2.指定驱动在执行命令的时候可以指定驱动,否则会有以下警告Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver
2021-01-15 23:33:40
415
原创 知识图谱——初始neo4j
今天主要学习的内容为图数据库neo4j,结合以往对数据库的了解以及新的知识,写一些自己的想法。一、NoSQL数据库对于这个知识点,我很早之前就想总结一下自己的了解,但是一值没有时间与机会,今天正好借着neo4j来总结。特点相对于传统数据库来说,NoSQL数据库通常具有以下一个或几个特点:灵活的可扩展性,比如redis灵活的数据模型,比如今天要提到的neo4j与云计算紧密结合,比如hbaseNoSQL数据库的类型NoSQL大体可以分为四种类型:键值数据库、列族数据库、文档数据库、图数据库
2021-01-11 22:01:06
159
原创 泛型
泛型泛型的好处:安全、避免类型转换泛型的使用形式有两种:泛型类/泛型接口、泛型方法一、泛型类语法格式[修饰符] class 类名<泛型形参列表>{}[修饰符] interface 类名<泛型形参列表>{}public interface Collection<E> //<E>就是泛型形参列表public class ArrayList<E> //<E>就是泛型形参列表public class Hash
2020-12-30 08:27:44
308
原创 容器类(一)
数组的特点:①长度是固定的;②需要额外的变量来记录数组的有效元素个数。所以如果要对数组进行扩容,或者要维护元素的个数,都需要做大量的工作。所以Java提供了容器,统称为集合。每一种集合都有自己的特点,适用于特定的类型。数据存储的物理结构不论多复杂的存储方式,其最基本的物理结构都是基于两种:连续的存储空间:数组元素是相邻的,在内存中需要开辟连续的存储空间。必须明确,数组的存储一定是线性的优点:访问速度比较快。因为有了首地址,可以根据下标直接找到对应的元素缺点:内存紧张的时候,寻找一整块连
2020-12-29 17:07:38
110
原创 数据库学习(六)
话不多说,就是干!各部门工资最高的员工CREATE TABLE Employee(Id INT,Name VARCHAR(10),Salary FLOAT,DepartmentId INT);INSERT INTO Employee VALUES(1,'Joe',70000,1);INSERT INTO Employee VALUES(2,'Henry',80000,2);INSERT INTO Employee VALUES(3,'Sam',60000,2);INSERT INTO Empl
2020-12-28 19:40:14
154
原创 String类
String类String类的特点1.不能被继承。因为String是由final修饰的。2.String类型的对象是不可变的,即只要修改字符串,就会产生新对象。3.String对象不可变的特性使得,使我们可以把一些字符串存到常量池中。字符串常量池中的对象是可以共享的。public class TestString01 { public static void main(String[] args) { String s1 = "hello"; String s2 = "hello";
2020-12-28 18:07:32
84
原创 Java包装类
包装类Java就延续了C语言的8种基本数据类型,但是8种基本数据类型不属于对象。所以Java 为8种基本数据类型配上了包装类。基本包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean这些类都在java.lang中。装箱与拆箱装箱:把基本数据类型的数据包装成包装类的对象。拆箱:把包装类的对象拆解
2020-12-27 13:27:15
125
1
原创 RDD
RDD一、RDD创建(1)从文件系统中加载数据SparkContext通过testFile()读取数据生成内存中的RDDtextFile()支持的数据类型非常多,既可以从本地文件系统去加载,也可以从分布式文件系统HDFS中加载,也可以从云端加载。val lines = sc.textFile("file:///usr/cueb/00lifeng/airdelay_small.csv") //三个斜杠表示要读取本地文件//系统会自动把读取进来的每一行生成一个RDD元素val lines =
2020-12-25 10:40:21
340
原创 正则表达式
由于我长期以来都把笔记放在本地,近来由于数据损坏丢失了不少东西,所以逐渐把之前的内容搬运到CSDN。一、单个字符的匹配import rere.findall('a','abcdef')re.findall('你好','你好,成都')二、或关系元字符:|匹配规则:匹配 | 两侧任意的正则表达式注意:元字符左右不加空格print(re.findall('com|cn','www.baidu.com'))print(re.findall('com|cn','www.baidu.cn'))
2020-12-25 10:34:41
163
原创 数据库学习(五)
窗口函数窗口函数是我之前涉足较少的内容之一,乘此机会,完善这一短板。窗口函数的概念及基本使用方法窗口函数也称OLAP函数。OLAP是Online AnalyticalProcessing的简称,意思是对数据库数据进行实时分析处理。这里是作为一个数据分析的相关人员写的一些随笔,与窗口函数关系不大。但是OLAP其实还有更深的含义和更加值得探索的内容,当然,本段中所说的内容纯粹是为了回忆我学过的内容。OLAP与OLTP是一个经常被提起的概念,OLTP是指联机事务处理,如果说的简单一点,OLTP就是面向
2020-12-25 09:58:47
297
1
原创 数据库学习(四)
本次学习内容为集合运算和表的连接,作为一个sql老鸟,这次的内容并没有十分困难,但是其中有一些说法是我没有接触过的。1.bag模型和set模型作为一个数学系的人,可以说是天天与集合在打交道,而Bag和Set与数据库之间的关系,确是我从来没有接触过的(确实是浅薄了)。在高中数学课上我们就学过, 集合的一个显著的特征就是集合中的元素都是互异的. 当我们把数据库中的表看作是集合的时候, 实际上存在一些问题的: 不论是有意的设计或无意的过失, 很多数据库中的表包含了重复的行.Bag 是和 set 类似的一种
2020-12-22 20:51:27
389
原创 数据库学习(三)
今天的学习过程相对比较顺利,没有遇到什么过大的阻碍,现将我认为应该注意的知识点总结如下。1.视图视图是一个相对好理解的概念。我从人大张延松老师的书中摘抄了以下内容以解释视图:视图是数据库从一个或者多个基本表导出的虚表,视图中只存储视图的定义,但是不存放视图对应的实际数据。当访问视图时,通过视图的定义实时地从基本表中读取数据。定义视图为用户提供了基本表上多样化的数据子集,但不会产生数据冗余以及不同数据复本导致的数据不一致问题。视图在定义后可以和基本表一样被查询、删除,也可以在视图上定义新的视图。
2020-12-20 19:44:50
140
原创 CASE表达式
虽然立志成为一名数据分析师,但是Sql方面的知识已经忘得差不多了。由于最近比较有空,在日常学习外还会阅读《SQL进阶教程》这本书,学习后写博客记录。CASE表达式1.CASE表达式的分类CASE表达式分为简单CASE表达式和搜索CASE表达式,二者形式如下:--简单CASE表达式CASE 博主WHEN 会写SQL THEN 可以成为数据分析师WHEN 会写JAVA THEN 也许可以成为数据分析师ELSE 绝对不能成为数据分析师ENDCASE WHEN 博主会写SQL THEN 可以
2020-12-17 21:19:48
1239
原创 数据库学习(二)
本次学习过程中依然有许多细节需要注意,也让我复习到了许多已经忘却的知识,现总结如下。1.WHERE和HAVING这个知识点本不应该成为阻碍,但是由于最近没有细心学习sql,确实犯了一些小错误。总的来说,就是WHERE只能用于在表格中存在的字段的筛选,而HAVING可以用于一些自定义的字段。比如,按照以下这段代码,是查询不出任何结果的,而且还会报错select product_name,sale_price,purchase_price,(sale_price - purchase_price) as
2020-12-16 19:14:31
380
原创 Storm笔记
流计算概念实时获取来自不同数据源的海量数据经过实时分析处理,获得有价值的信息。流计算基本理念数据的价值会随着时间的流逝而降低流计算处理引擎应该满足低延迟、可扩展、高可靠流计算系统要求高性能、海量式、实时性、分布式、易用性、可靠性Storm可以简单、高效、可靠地处理流数据,支持多种编程语言,处理非常灵活可以非常方便地与现有的数据库系统产品进行融合,从而开发出非常强大的实时计算系统StreamStorm将流数据Stream描述成一个无限的Tuple序列,这些Tuple序列会以分布
2020-12-15 20:54:04
197
原创 数据库学习(一)
写一些对于数据库小细节的把握。1.INTEGER和int与java不同,在mysql中,int和integer没有任何区别,只是在书写上有一些差异。create table product(product_id char(4) not null,product_name varchar(100) not null,product_type varchar(32) not null,sale_price integer,purchase_price integer,regist_date d
2020-12-15 09:36:25
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人