自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ywm_up

个人的学习过程和心得

  • 博客(64)
  • 资源 (1)
  • 收藏
  • 关注

转载 Neo4j CQL - SET子句

Neo4j CQL 已提供 SET 子句来执行以下操作向现有节点或关系添加新属性添加或更新属性值语法:SET <property-name-list>语法元素描述属性名列表<属性名称列表>语法<node-label-name>.<property1-name>,<node-label-name>.<property2-name>, .... <node-label-name&g

2020-12-25 10:15:21 220

转载 Neo4j CQL - REMOVE删除

1. 作用Neo4j CQL REMOVE命令用于删除节点或关系的标签删除节点或关系的属性2. REMOVE与DELETE的区别和联系Neo4j CQL DELETE和REMOVE命令之间的主要区别DELETE操作用于删除节点和关联关系REMOVE操作用于删除标签和属性Neo4j CQL DELETE和REMOVE命令之间的相似性这两个命令不应单独使用两个命令都应该与MATCH命令一起使用3. 语法3.1 删除节点/关系的属性REMOVE <property-na

2020-12-25 10:14:35 269

转载 Neo4j CQL - DELETE删除

Neo4j使用CQL DELETE子句删除节点删除节点及相关节点和关系1. DELETE删除节点DELETE <node-name-list>语法元素描述DELETECQL关键字从数据库中删除的节点名称列表,用逗号(,)隔开节点名-- 删除Employee节点MATCH (e: Employee) DELETE e-- 再用这个语句查看结果MATCH (e: Employee) RETURN e2. DELETE删除节点和关系DE

2020-12-25 10:14:03 576

转载 Neo4j CQL - WHERE子句

一、使用WHERE筛选查询像SQL一样,Neo4j CQL在CQL MATCH命令中提供了WHERE子句来过滤MATCH查询的结果-- 简单WHERE子句语法WHERE <condition>-- 复杂WHERE子句语法WHERE <condition> <boolean-operator> <condition>语法:<property-name> <comparison-operator> <value&gt

2020-12-25 10:13:30 610

转载 Neo4j CQL - 关系基础

一、使用现有节点创建没有属性的关系语法MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name>]->(<node2-label-name>)RE

2020-12-25 10:12:50 515

转载 Neo4j CQL - MATCH & RETURN匹配和返回

在Neo4j CQL中,我们不能单独使用MATCH或RETURN命令,因此我们应该合并这两个命令以从数据库检索数据。Neo4j使用CQL MATCH + RETURN命令检索节点的某些属性检索节点的所有属性检索节点和关联关系的某些属性检索节点和关联关系的所有属性MATCH REETURN 命令语法:MATCH CommandRETURN Command例如:本示例演示如何从数据库检索Dept节点的一些属性(deptno,dname)数据。注-结点包含3个属性:deptno,dnam

2020-12-25 10:12:19 620 1

转载 Neo4j CQL - RETURN子句

RETURN命令Neo4j CQL RETURN子句用于检索节点的某些属性检索节点的所有属性检索节点和关联关系的某些属性检索节点和关联关系的所有属性RETURN 命令语法RETURN <node-name>.<property1-name>, ........ <node-name>.<propertyn-name>语法元素描述节点名称…节点的属性名不能单独使用RETURN子句。应该

2020-12-25 10:11:51 433

转载 Neo4j CQL - CREATE命令

CREATE命令1. 创建没有属性的节点CREATE (<node-name>:<label-name>)语法元素描述CREATECQL关键字节点名称标签名称示例:CREATE (emp:Employee)CREATE (dept:Dept)2. 创建有属性的节点CREATE (<node-name>:<label-name>{ <Property1-name>:&lt

2020-12-25 10:11:05 156

转载 Neo4j CQL - MATCH命令

MATCH命令Neo4j CQL MATCH 命令用于从数据库获取有关节点和属性的数据从数据库获取有关节点,关系和属性的数据MATCH 命令语法MATCH ( <node-name>:<label-name>)语法元素描述查询的节点名称查询的标签名称要在数据库中查询数据,通常需要搭配其他语句例如:match (dept:Dept) return dept...

2020-12-25 10:10:36 363

转载 Neo4j - 特点和优势

Neo4j的特点SQL就像简单的查询语言Neo4j CQL它遵循属性图数据模型它通过使用Apache Lucence支持索引它支持UNIQUE约束它包含一个用于执行CQL命令的UI:Neo4j数据浏览器它支持完整的ACID(原子性,一致性,隔离性和持久性)规则它采用原生图形库与本地GPE(图形处理引擎)它支持查询的数据导出到JSON和XLS格式它提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问它提供了可以通过任何UI MVC框架(如Node JS)

2020-12-25 10:09:59 2705

转载 为什么要用图数据库?

一、 图数据库具有天然可解释性图数据库基于图模型,即使没有专业知识,也能轻松理解它可以接受比实时查询更为复杂的分析需求二、图数据库在处理关联数据时的优势高性能:随着数据量的增多和关联深度的增加,传统关系型数据库受制于检索时需要多个表之间连接操作,数据写入时也需考虑外键约束,从而导致较大的额外开销,产生严重的性能问题。而图模型固有的数据索引结构,使得它的数据查询与分析速度更快灵活:图数据库有非常灵活的数据模型,使用者可以根据业务变化随时调整数据模型,比如任意添加或删除顶点、边,扩充或者缩小图模

2020-12-24 22:20:55 542

原创 面试题59:I. 滑动窗口的最大值

题目:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。方法一:暴力两层循环,暴力求解时间复杂度 O(nk)空间复杂度 O(1)class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if (nums.length == 0) { return nums; } int len .

2020-12-24 22:18:51 226

原创 面试题58:I. 翻转单词顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。方法一:字符串头插把已经读取到的单词组 words 添加到当前单词 curr 的后面,先在每个单词后面都添加一个空格,最后在删除字符串最后面的一个空格时间复杂度 O(n)空间复杂度 O(n)// 自己写的效率果然不行// 执行用时:26 ms, 在所有 Java 提交中击败了5.41%的用户.

2020-12-24 22:18:21 70

原创 面试题58:II. 左旋转字符串

题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"方法:substring 截断时间复杂度 O(n)空间复杂度 O(n)public String reverseLeftWords(String s, int n) { if (s.length() == 0) { return s; } retur.

2020-12-24 22:17:49 83

原创 面试题57:II. 和为s的连续正数序列

题目:输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。注意:题目要求的是连续的数字方法一:暴力+枚举第一层遍历,固定 i 的位置,第二层遍历从 i 的位置开始,一个一个加起来,当和 sum 的值位 target 的时候,加入到结果集中。结果集先定义为 List 类型,最后在转换成数组时间复杂度 O(target sqrt(target))空间复杂度 O(1),结果集不算在空间开销中.

2020-12-24 22:17:20 61

原创 面试题57:和为s的两个数字

输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可方法一:暴力两层循环暴力求解时间复杂度 O(n^2)空间复杂度 O(1)方法二:遍历二分查找排序想到二分,写一个 helper 函数用于二分查找,遍历原数组,每次用 helper 查找 target - nums[i],找到了就返回下标,没找到就返回 -1时间复杂度 O(nlogn)空间复杂度 O(1)// 时间效率还是不行// 执行用时:46 ms, 在.

2020-12-24 22:16:44 49

原创 面试题56:I. 数组中数字出现的次数

题目:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。方法:分组异或用另一题引申。找到数组中只出现一次的数。方法是用 0 去异或所有数字,两个相同的数就会抵消为 0,最后异或得到的结果就是数组中只出现一次的数用这种方法,我们可以应用到这题。把数组中的数分成两部分,这两部分单独包含一个只出现一次的数,就可以解决问题。对遍历整个数组异或后的结果 k ,k 的二进制中,至少有一位为 .

2020-12-24 22:16:01 60

原创 面试题55:II. 平衡二叉树

题目:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。方法一:自顶向下,先序遍历,判断深度递归判断每个系是不是平衡二叉树,即左右结点的高度差在 1 之内,这里要用到上一题的代码,求树的深度。容易想到,但是计算深度的时候,会产生大量的重复计算,时间复杂度较高时间复杂度 O(nlogn)空间复杂度 O(n)class Solution { public boolean isBalanced(TreeNod.

2020-12-24 22:15:32 147

原创 面试题55:I. 二叉树的深度

题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度方法:递归左右子树递归遍历,取左右子树的最大深度,加当前根结点的 1 个深度,就是结果时间复杂度 O(n)空间复杂度 O(n),递归栈的深度class Solution { public int maxDepth(TreeNode root) { return dfs(root); } int dfs(TreeNode .

2020-12-07 17:42:39 73

原创 面试题54:二叉搜索树的第k大节点

题目:给定一棵二叉搜索树,请找出其中第k大的节点方法:递归右中左遍历用一个全局变量 k 来维护函数的参数 k ,递归右中左遍历时间复杂度 O(n)空间复杂度 O(n),递归栈的深度class Solution { int k, res; public int kthLargest(TreeNode root, int k) { this.k = k; dfs(root); return res; } void.

2020-12-07 17:42:10 130

原创 面试题53:II. 0~n-1中缺失的数字

题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例1:输入: [0,1,3]输出: 2方法一:二分法可以发现规律,如果下标 index < nums[index] 的话,所缺的值在中心点的左边,反之在右边时间复杂度 O(logn)空间复杂度 O(1)public static int missingNumber(int[] nums) { i.

2020-12-07 17:41:37 77

原创 面试题53:I.在排序数组中查找数字

统计一个数字在排序数组中出现的次数。方法一:遍历遍历,计数,如果当前值 nums[i] > target,就中断遍历时间复杂度 O(n)空间复杂度 O(1)public int search(int[] nums, int target) { int count = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] == target) { count++; .

2020-12-07 17:41:06 60 1

原创 面试题52:两个链表的第一个公共节点

输入两个链表,找出它们的第一个公共节点。方法:双指针法比较简单,考研也练习过时间复杂度 O(n+m)空间复杂度 O(1)public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode pA = headA, pB = headB; int lenA = 0, lenB = 0; while (pA != null) { lenA++; pA.

2020-12-07 17:40:36 101

原创 面试题50:第一个只出现一次的字符

题目:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。s = “abaccdeff”返回 “b”s = “”返回 " "原来我的思路是开辟一个定长 26 的数组,来存储每个字符出现的次数,发现不行。因为会弄乱字符出现的顺序。例如输入 leetcode,输出结果为 “c”,正确答案为 “l”。这是我的解法,复杂而且没做对public char firstUniqChar(String s) { char res = ' '; i.

2020-12-07 17:40:05 161

原创 面试题44:数字序列中某一位的数字

题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。找规律的题目:网友写得真不错作者:jyd 来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。时间复杂度 O(logn)空间复杂度 O(logn)public int findNthDigit(int n) { int digit .

2020-12-07 17:39:39 50

原创 面试题42:连续子数组的最大和

输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。方法一:动态规划(最优解)直接修改原数组,不用再另外开辟空间。设 f(x) 为当前位置 x 的子数组最大和f(x) =① f(x- 1) + nums[x] , f(x - 1) > 0②nums[x] .

2020-12-07 17:39:01 81

原创 面试题40:最小的k个数(未完成)

题目:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。方法一:排序,输出前 k 个数时间复杂度 O(nlogn)空间复杂度 O(logn),排序需要额外的空间public int[] getLeastNumbers(int[] arr, int k) { Arrays.sort(arr); int[] res = new int[k]; fo.

2020-12-07 17:38:06 73

原创 面试题39:数组中出现次数超过一半的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。方法一:摩尔投票法思路:用 value 记录当前投票数最多的数字,count 记录当前票数,遍历数组,如果当前数字和 value 不相同,那么票数减 1 ,相同则加 1 ,如果票数降到 0 ,则需要重新记录 value 。时间复杂度 O(n)空间复杂度 O(1)// 我写的代码,感觉有点问题,还是网友写的好class Solution { public int majorityElement(int[] nums.

2020-12-07 17:37:01 52

原创 面试题38:字符串的排列

题目:输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]参考思路[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MBnTU64F-1607042717529)(en-resource://database/607:1)]时间复杂度 O(n)空间复杂度 O(n^2)class S.

2020-12-04 08:45:58 114

原创 面试题37:序列化二叉树

题目:请实现两个函数,分别用来序列化和反序列化二叉树。如:将树序列化为字符串 “[1,2,3,null,null,4,5]”还要将字符串反序列化为二叉树序列化方法用队列进行层次遍历,把结点一个个加入到结果集中时间复杂度 O(n)空间复杂度 O(n),需要开辟一个长度为 n 的队列反序列化方法根据二叉树结点之间的运算关系进行求解,若结点 cur 的下标为 x ,那么其左子结点下标为 2 * x + 1,右子节点的下标为 2 * x + 2。虽然知道了结点下标的关系,但是还是需要遍历树,.

2020-12-04 08:45:06 173

原创 面试题36:二叉搜索树与双向链表

题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。理解有点难,具体看注释参考网友解法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TJPxcJ0T-1607042577604)(en-resource://database/610:1)]时间复杂度 O(n)空间复杂度 O(n) ,当树退化为链表的时候,递归深度为 nclass Solution { Node head, pr.

2020-12-04 08:44:07 253

原创 面试题35:复杂链表的复制

题目:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。方法一:暴力先构建链表,然后再一个一个的找 random 指针所指向的结点时间复杂度O(n^2)空间复杂度O(1)时间效率太差了,完全没有美感方法二:空间换时间用一个大小为 n 的 hash 表存储,用 O(n) 的空间把时间从 O(n^2) 降到 O(n)方法三:同步复制第一趟遍历构建复.

2020-12-04 08:42:46 112

原创 面试题34:二叉树中和为某一值的路径

题目:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。思路:先序遍历树,用全局变量LinkedList类型的 path 来记录路径,暴力回溯,tar 不停的递减,直到 tar 为 0 并且当前结点为叶子结点,那么找到正确的路径 path,将其存入结果集中。时间复杂度O(n),遍历书中每个结点的时间复杂度空间复杂度O(n),需要定义一个辅助数组 path ,来存储路径,结果集不算再空间复杂度里面。class So.

2020-12-04 08:42:00 125

原创 面试题33:二叉搜索树的后序遍历序列

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相空间思路:由于题目没有给出二叉树长什么样子,只给了一个数组,所以我们要从数组中找到二叉搜索树后序序列的规律。后序序列的最后一个元素是树的根结点,因此,可以再数组中找到一个划分,根结点的左子树的值都比根结点小,右子树的值都比根结点大,用这个思路(左大右小)就可以不断递归判断子树是不是二叉搜索树了。时间复杂度O(n^2)空间复杂度O

2020-12-04 08:40:52 169

原创 面试题32:从上到下打印二叉树 II

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行思想:和普通的层次遍历不一样,这题需要记录每一层元素的个数,在一趟 while 就遍历完一层,然后再 add 到结果集里面,每趟遍历开始清零下一层元素个数 level ,每次入队一个结点,level++时间复杂度O(n),n 为结点个数空间都咋读O(1),结果需要开辟的空间,不算在开销里面public List<List<Integer>> levelOrder(TreeNode root) {.

2020-12-04 08:40:10 83

原创 面试题32:从上到下打印二叉树

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。思路:其实就是层次遍历,遍历到该结点,如果存在的话,那么就加入队列末尾,这题比主站的简单一些。时间复杂度O(n),n 为树结点的个数空间复杂度O(n)public int[] levelOrder(TreeNode root) { Queue<TreeNode> queue = new LinkedList<TreeNode>(); ArrayList<Integer> l.

2020-12-04 08:39:28 116

原创 面试题31:栈的压入、弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。思想:保证栈不为空,如果栈顶元素值等于当前要弹栈的值,那么弹栈,否则继续压栈public static boolean validateStackSequences(int[] pushed, int[] popp.

2020-12-04 08:38:57 75

原创 面试题30:包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。用一个辅助栈 stack2 ,stack2 栈顶存储的是实际栈 stack1 的最小值 min,如果是取最小值的话,就读出 stack2 的栈顶。对于入栈操作,如果要入栈的值 x ,小于等于当前 stack2 的最小值,那么同时也将 x 压入stack2 中。第一个需要注意的地方是,上面那个小于等于需要注意的是,Integer 的判等需要.

2020-12-04 08:38:31 52

原创 面试题29:顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]方法:按层模拟这种比较好理解,一次遍历完一层元素时间复杂度O(nm)空间复杂度O(1)public int[] spiralOrder(int[][] matrix) { if (matrix.length == 0) { return new int[0]; .

2020-12-03 14:56:26 96

原创 面试题28:对称二叉树

题目:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。方法:递归root1 的左子树和 root2 的右子树比较,root1 的右子树和 root2 的左子树比较,递归下去直到 root1 和 root2 有空,需要注意的是空指针的判别。时间复杂度 O(n),n 为树的结点空间复杂度 O(n),递归栈需要空间class Solution { public boolean .

2020-12-03 14:55:54 61

MybatisStudy.rar

MybatisStudy.rar

2021-02-26

空空如也

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

TA关注的人

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