
剑指offer算法详解
最紧感觉自己算法方面比较薄弱,找了点经典例题,充实下大脑
piepis
DT时代的一块砖
展开
-
SQL面试题-聚合函数
题目1 背景说明:有一张包括历史到现在为止的银行ATM流水表,trans_amount(单位万元).包括如下信息:user_id, data_dt, trans_type, trans_amount, account_balance u_001 ,2019-12-01, deposit , 8 , 28u_002 ,2019-12-01, deposit , 10 , 10u_002 ,2019-12-02, withdraw, 7 , 3u_002 ,原创 2020-08-15 19:24:05 · 1375 阅读 · 0 评论 -
SQL-用户连续登陆问题
数据格式基础问题问题: 用户连续登陆的最大天数解题思路先按照用户(uid)分组,按照日期升序排列获取新列 row_num按照第一步的排序结果,将每个日期减去(date_sub)排序结果row_num获取date2列聚合uid,date1 列,求每个uid出现次数,然后获取每个uid最大连续分步解析第一步create table login1_tmp1selectuid,date1,row_number() over(partition by uid order by date原创 2020-08-12 20:52:51 · 1815 阅读 · 0 评论 -
HDFS- 面试重点
Hdfs 文件块大小题目:为什么块的大小不能设置太小,也不能设置太大?答:Hdfs的块设置的太小,会增加寻址时间,程序一直在找块的开始位置;如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常的慢。总结:Hdfs块大小设置主要取决于磁盘传输速率。...原创 2020-08-07 12:52:40 · 308 阅读 · 0 评论 -
SQL面试题-窗口函数
开窗函数 sum 应用问题 : 按日展示,月度累计结果数据表 CLSFD_WEEKLY_Bn_USV_Watch select metric_name,month(clsfd_sum_dt) as mon, clsfd_sum_dt, metric_value, sum(count_name) over(partition by metric_name,month(clsfd_sum_dt) order by month(clsfd_sum_dt),clsfd_sum_dt rows be原创 2020-08-05 18:23:51 · 928 阅读 · 0 评论 -
数组:模拟栈数据结构
题目编写程序,使用一维数组,模拟栈数据结构要求这个栈可以存储java中任何引用数据类型的数据在栈中提供push方法模拟压栈。 (栈满,有提示)在栈中提供pop方法模拟弹栈 (栈空,也有提示)编写测试程序,new栈对象,调用push,pop方法来模拟压栈弹栈的动作不传参数时,默认初始化时栈空间容量为10思路public class MyStack {//栈类 提供一个数组来存储栈中的元素 Object[] elements; 栈帧(永远指向栈顶部的元原创 2020-05-13 14:42:04 · 404 阅读 · 0 评论 -
剑指Offer(三):递归问题
题目猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。思路此问题与汉诺塔的问题类似,主要是代码来实现递归求解。最后一天剩1个,那就是当day=1时,桃子的数目为1,当day>1时,第X天的桃子的总数为(x+1)...原创 2019-11-20 18:07:32 · 140 阅读 · 0 评论 -
剑指Offer(二):替换空格
题目请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路最简单的方法就是从头到尾遍历,但是时间复杂度为O(n^2)。本文采用一种时间复杂度为O(n)的方法。我们可以先遍历一次字符串,这样就可以统计出字符串空格的总数,并可以由此计算出替换之后的字符串的总长度。每替换一个空格,长度增...原创 2019-03-25 18:24:28 · 192 阅读 · 0 评论 -
剑指Offer(一):二维数组中查找最大值
题目这个题目说的是,给你一个二维数组 matrix,和一个目标值 target。你要在数组里找到这个目标值,然后返回它的行/列下标。如果找不到,则返回 [-1,-1]。这个数组的每一行都是从左向右递增,每一列都是从上到下递增。和「二维数组的二分搜索」不同,这道题目并不保证每一行的第一个数都比上一行的最后一个数要大。比如说,给你的二维数组是:1, 3, 52, 4, 6给你的目标值是...原创 2019-03-22 10:03:38 · 10506 阅读 · 0 评论