- 博客(30)
- 收藏
- 关注
原创 事实表&&维度表
事实表&&维度表首先简单的说:事实表就是你要关注的内容维度表就是你观察该事物的角度,是从哪个角度去观察这个内容的。维度模型的逻辑设计是由四个主要决策所驱动的:选择业务过程声明粒度清楚的定义事实表中的行到底代表什么。事实表的粒度一般是最小的原子单元确定维粒度本身就能够确定一个基本的或者最小的维度组合,设计过程就是在此基础上添加其他维确定事实选择适...
2020-01-05 18:05:40 489
原创 维度建模简介
维度建模简介维度建模是一种将数据结构化的逻辑设计方法,因此它对业务用户来说很直观,并能提供较快的查询性能。维度建模将客观世界分为事实和维度。1、维度建模 VS 范式(3NF)建模建模方法开发周期开发成本数据冗余维护成本维度建模(Kimball)短低有高范式建模(Inmon)长高无低在数仓模型架构设计中,维度建模以星型模型为主。dw层通...
2020-01-05 17:11:36 616
原创 Doris(原Palo)简介
写在前面:Doris 由百度大数据部研发 ,之前叫百度 Palo,2018年贡献到 Apache 社区后,更名为 Doris 。本博客主要从业务角度(我们为什么会选择使用它,如何用)来对Doris进行简要介绍。1、Doris简介Doris是一个MPP的OLAP系统,以较低的成本提供在大数据集上的高性能分析和报表查询功能。MPP (Massively Parallel Processing...
2019-12-15 21:57:49 16444 1
原创 27包含min函数的栈--剑指offer,java版
27包含min函数的栈–剑指offer,java版题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。分析:第一反应是每次压入一个新元素时,将栈中所有元素进行排序,让最小的位于栈顶。但是这样的话这个数据结构就不是栈了,无法保证最后压入栈的元素能先出栈。然后思考添加一个成员变量用来存放最小的元素,但这样只能得到最小,无法得到次小。...
2019-05-05 14:26:13 146
原创 26对称的二叉树--剑指offer,java版
26对称的二叉树–剑指offer,java版请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。分析:实质上是利用树的遍历算法解决问题/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; ...
2019-05-04 14:08:33 132
原创 25链表中环的入口节点--剑指offer,java版
链表中环的入口节点–剑指offer,java版题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。分析:①首先判断是否有环:设置两个指针,一个一次走一步,另一个一次走两步,如果走的快的指针追上了走的慢的指针(即两个指针在环中相遇),说明有环,返回相遇的那个节点。②求出这个环的长度:设置一个临时指针等于相遇的这个节点,再移动此节点,当此节点又等于临时指针时,说...
2019-05-02 14:11:41 112
原创 24不用加减乘除做加法--剑指offer,java版
24不用加减乘除做加法–剑指offer,java版题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。分析:此题考查能不能想到用位运算来做加法我们可以考虑把加法计算分为三步,如5的二进制是101,17的二进制是10001第一步:各位相加但不计进位,得到结果是10100第二步:记下位数,结果是10第三步:将前两位相加接下来我们考虑把二进制的加法用位...
2019-03-27 13:46:30 105
原创 1矩形中的路径--剑指offer,java版
1矩形中的路径–剑指offer,java版题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径...
2019-03-25 14:38:59 203
原创 2从尾到头打印链表--剑指offer,java版
2从尾到头打印链表–剑指offer,java版题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。分析:典型的“先进后出”,我们可以用栈来实现/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {*...
2019-03-24 10:20:15 99
原创 3替换空格--剑指offer,java版
3替换空格–剑指offer,java版题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。分析:我们首先遍历字符串,求出空格个数,从而求得替换之后的字符串总长度。设置两个索引,一个指向替换前字符串的末尾,一个指向替换后字符串的末尾。若不是空格,则替换前后字符串索引均向前移动...
2019-03-23 13:13:21 146
原创 17表示数值的字符串--剑指offer,java版
17表示数值的字符串–剑指offer,java版题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"
2019-03-22 12:58:40 118
原创 23顺时针打印矩阵--剑指offer,java版
23顺时针打印矩阵–剑指offer,java版题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.分析思路:对于一个5*5的矩阵而言,最后一圈只有一个数字,坐标为(2...
2019-03-18 21:58:49 104
原创 22二叉树的镜像--剑指offer,java版
22二叉树的镜像–剑指offer,java版题目描述操作给定的二叉树,将其变换为源二叉树的镜像。分析:前序遍历(DLR)这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶节点的左、右子节点之后,就得到了树的镜像。/**public class TreeNode { int val = 0; TreeNode left = null; ...
2019-03-15 21:42:53 114
原创 21树的子结构--剑指offer,java版
21树的子结构–剑指offer,java版题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val)...
2019-03-14 22:00:53 111
原创 20合并两个排序的链表--剑指offer,java版
20合并两个排序的链表–剑指offer,java版题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。①注意鲁棒性,如当list1是空链表时,合并的结果就是list2②得到两个链表中值较小的头节点并把它链接到已经合并的链表之后,两个链表剩余的节点依然是排序的。说明这是个递归过程。/*public class ListNode { ...
2019-03-12 11:33:02 100
原创 19反转链表--剑指offer,java版
19反转链表–剑指offer,java版题目描述输入一个链表,反转链表后,输出新链表的表头。我们需调整链表中指针的方向。但注意调整指针方向时,除了要知道节点本身,节点的前一个节点外,还要事先保存节点的后一个节点,以防止节点断开后,找不到后面这个节点/*public class ListNode { int val; ListNode next = null; L...
2019-03-12 10:58:09 250
原创 18链表中倒数第k个节点--剑指offer,java版
18链表中倒数第k个节点–剑指offer,java版题目描述输入一个链表,输出该链表中倒数第k个结点。若从头到尾遍历链表,每经过一个节点,计数器加1的话,需要遍历链表两次,第一次统计出链表中节点的个数,第二次找到倒数第K个节点。故可定义两个指针,这样只遍历一次。第一个指针从头指针开始向前走k-1步,第二个指针不动从第k个指针开始,第二个指针也开始向前遍历,这样两个指针的距离保持在k-1...
2019-03-11 20:21:07 106
原创 16正则表达式匹配--剑指offer,java版
16正则表达式匹配–剑指offer,java版题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a&
2019-03-09 13:53:07 254 1
原创 15机器人的运动范围--剑指offer,java版
15机器人的运动范围–剑指offer,java版题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格...
2019-03-07 19:38:59 134
原创 14数组中重复的数字--剑指offer,java版
14数组中重复的数字–剑指offer,java版题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。从头到尾扫描这个数组中的每个数字,当扫描到下标为 i 的数字时,首先比较...
2019-03-06 11:35:32 143
原创 13调整数组顺序使奇数位于偶数前面--剑指offer,java版
13调整数组顺序使奇数位于偶数前面–剑指offer,java版题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。不要求相对位置不变时:public class Solution { public void reOrderArray(int [] array)...
2019-03-05 16:34:57 122
原创 12数值的整数次方--剑指offer,java版
12数值的整数次方–剑指offer,java版题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。1.效率太低public class Solution { public double Power(double base, int exponent) { double result = 1.0; ...
2019-03-04 19:29:32 183
原创 11二进制中1的个数--剑指Offer, java版
11二进制中1的个数–剑指Offer, java版先把整数n最右边一位与1做位与运算,看结果是不是1;再把整数右移一位,直到整个整数变为0为止。但是这个解法很容易陷入死循环,故不考虑为避免死循环,不右移整数n。而是首先把n和1做与运算,判断最低位是不是1;接着把1左移一位,得到2,再和n做与运算,判断n的次低位是不是1;这样反复左移。这种解法中循环的次数等于整数二进制的位数public...
2019-03-03 11:21:36 219
原创 10矩形覆盖–剑指offer, java版
10矩形覆盖–剑指offer, java版题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法?如当n=4时,用第一个21的小矩形覆盖最左边时有两个选择:①竖着放, 则剩下有f(3)种可能②横着放, 则左下角必须有一个横着放的小矩形,此时右边还剩下f(2)种可能即f(4)=f(3)+f(2),可看出仍是斐波那契...
2019-03-02 14:47:19 100
原创 09高级跳台阶–剑指offer, java版
09高级跳台阶–剑指offer, java版题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。f(1)=1f(2)=2f(3)=f(2)+f(1)+1=4 (第一次跳1级;第一次跳2级;第一次跳3级)f(4)=f(3)+f(2)+f(1)+1=8f(5)=f(4)+f(3)+f(2)+f(1)+1=16…f(n...
2019-03-02 14:13:59 190
原创 08跳台阶–剑指offer, java版
08跳台阶–剑指offer, java版P77public class Solution { public int JumpFloor(int target) { int[] result = {1,2}; if(target < 3) return result[target-1]; int sumOne = 1; ...
2019-03-01 14:18:14 125
原创 07斐波那契数列–剑指offer, java版
07斐波那契数列–剑指offer, java版P75public class Solution { public int Fibonacci(int n) { if(n < 0) { System.out.println("wrong input"); return 0; } if(n...
2019-03-01 13:39:31 135
原创 06旋转数组的最小数字--剑指offer, java版
06旋转数组的最小数字–剑指offer, java版P83import java.util.ArrayList;public class Solution { public int minNumberInRotateArray(int [] array) { int length = array.length; if(length &lt;= 0 ||...
2019-02-28 21:06:43 137
原创 05用两个栈实现队列--剑指offer, java版
05用两个栈实现队列–剑指offer, java版p69import java.util.Stack;public class Solution { Stack&lt;Integer&gt; stack1 = new Stack&lt;Integer&gt;(); Stack&lt;Integer&gt; stack2 = new Stack&lt;Integer&
2019-02-27 20:59:34 146
原创 04重建二叉树--剑指offer,java版
04重建二叉树–剑指offer,java版/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public clas...
2019-02-26 15:26:19 146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人