自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode -Easy - 67 - 二进制求和

原题链接 : 二进制求和年后第一天上班, 上的有点懵…昨天有点晚了, 再加上这题目不想用自带的二进制写, 就给拖到了今天, 说回题目:题目是给定两个用字符串表示的二进制, 需要给出他们两个的和, 题目不是很难, 也有不少解法 , 我自己用的方法比较笨, 模拟了二进制的加法来做的 , 参考代码如下 : // 得到两个字符串的长度 int lena = a.length(); int lenb = b.length(); // 用长的减去短的, 得到差

2022-02-10 19:36:25 405

原创 LeetCode - Easy - 66 - 加一

原题链接 : 加一年假的最后一天啦~ 出门溜达了一天, 晚上到家继续学习, 继续简单题.这次的题目比较简单, 用数组的方式记录整数, 并返回加1后的数组, 只需要想明白几种情况即可.当前下标数值加1后不是10, 则直接加1后返回 ;当前下标值加1后是10, 则当前位置填0, 继续循环当所有下标值加1后都是10, 说明原数组都为9,则直接返回原数组长度+1的数组, 且0下标置为1 ;参考代码 : int tag = digits.length ; // 从最

2022-02-08 22:28:14 222

原创 LeetCode - Easy- 58 - 最后一个单词的长度

原题链接 : 最后一个单词的长度各位开工大吉 恭喜发财~ 继续我的LeetCode之旅, 今日的题目比较简单, 最后一个单词的长度, 给定的字符串只有空格和字母, 而且length最小为1. 题目要求求最后的单词, 所以从后往前找是最快的. 因为比较简单, 就不啰嗦啦 直接上代码 :参考代码 1 int tag = s.length() - 1; // 先把后面的空格全部排除掉,找到最后不为空格的下标 while (s.charAt(tag) == ' ') {

2022-02-07 12:38:11 319

原创 LeetCode - Easy - 53 - 最大子数组和 [动态规划]

原题链接 : 最大子数组和当我看到题目的时候, 就已经明了了这题绝对又是一个让人可以快乐学习的题目. 果然, 不出所料~真是妙到家了哈哈哈这题有四种解法, 暴力破解(没错就是我) , 贪心 , 动态规划 和 分治 . 暴力破解不说了哈, 只简单说一下动态规划的思路.动态规划的一些思路可以从这个文章里了解, 我觉得他写的足够明了 : 什么是动态规划使用动态规划前, 需要判断当前题目是否满足无后效性和最优子结构, 在数组内求最大子数组的和, 这明显是满足最优子结构的条件, 而求一个局部最优的过程对后续

2022-02-06 13:51:13 166

原创 LeetCode - Easy - 35 - 搜索插入位置

原题链接 : 搜索插入位置名副其实的简单题, 不像昨天的第28题,披着简单题的外衣, 其实是想让我学习KMP ???? .题目要求搜索给定值在数组中的位置,从第一个例子 : 1,3,5,6 目标值5, 输出2 可以看出, 如果有相同的, 需要插入左边, 又要求使用O(logn)时间复杂度的算法, 这就差直接说使用二分查找了吧…二分查找不用多说啦, 直接上参考代码 : // 处理几种特殊情况 if (nums == null) return 0; // 最后的比ta

2022-02-05 12:05:52 181

原创 LeetCode - Easy - 28 - 实现strStr()

原题链接 : 实现strStr()哎呀这题呀… 给我看到怀疑人生…开门见山哈, 这题有三种解法, 如果作为简单题来看, 这题的思路就比较简单粗暴简单题的思路 :题目的意思是要在原串里找到目标串,并返回原串的首下标, 最简单的思路就是将原串长度为目标串的子串都依次和目标串比较, 如果有完全一样的则返回原串的起始下标. 参考代码如下 : //如果目标串为"",则返回0 if (needle.equals("")) return 0; // 如果为nul

2022-02-04 16:03:56 244

原创 LeetCode - Easy - 27 - 移除元素

原题链接 : 移除元素这题… 这题和26题有虾米本质的区别吗…我是感觉没有…思路也是双"指针", 刚开始时候快指针和慢指针指向开头, 判断条件为当快指针指向的值不等于给定值时, 慢指针和快指针后移 ; 如果快指针的值和给定值相等时, 慢指针不动, 快指针后移去寻找和需要删除的值不相等的, 然后走不相等的逻辑 . 所以这里不需要去判断相等了咋样, 只需要处理不相等时的逻辑即可.参考代码如下 : // 定义返回的数组长度 int res = 0; // 处理边界情况

2022-02-03 11:35:44 660

原创 LeetCode - Easy - 26 - 删除有序数组中的重复项

原题链接 : 添加链接描述首先, 不得不吐槽一下这题的描述… 删除有序数组中的重复项, 而且不允许使用额外的数组空间, 看到这满头问号… 读了几遍才明白, 题目的意思是直接在原数组上修改, 最后返回修改后数组内无重复元素的范围.思路其实也比较明了, 使用双指针, 一个跑的快在前面比较, 一个跑的慢的在后面做修改 , 当快指针发现当前下标值与上一个值不同时, 将慢指针向前移动一位, 并把快指针当前值赋予慢指针移动后的下标.参考代码如下 : // 这里的res是下标 int res

2022-02-02 12:10:30 5721

原创 Easy - 21 - 合并两个有序链表

原题链接 : 合并两个有序链表各位铁汁新年快乐, 大年初一给大家拜年啦~回到这个LeetCode , 关键词在于给定的是两个有序且为升序的链表, 要求返回一个合并后的升序链表, 如果一个为空, 则返回另一个.思路大家应该都能想到, 拿两个链表的节点顺序比较, 将较小的指向较大的,然后循环往复 . 这里比较难的点在于递归的写法 , 这里我说下我自己的方法 .一般在需要写递归的时候, 重要的一点在于需要确认的是什么情况下结束递归, 这里我会去看最后一次的情况, 拿这道题举例 :假设 链表1是: 1

2022-02-01 11:53:07 618

原创 Easy - 20 - 有效的括号 [新年快乐, 虎年吉祥~]

原题链接 : 有效的括号今天除夕啦, 祝大家新年快乐, 虎年吉祥~ (LeetCode不能停,哈哈哈)题目要求判断给定字符串里的括号是否都为有效括号, 理想情况下, 一个左括号一个有括号, 判断两个括号是否为一个类型即可, 考虑到可能会有连续不同类型的左括号出现, 这里需要在出现第一个右括号时, 去判断最后一个左括号是否与之匹配. 想到这里, 比较明显的可以想到用栈来解决,遇到左括号则压栈, 遇到右括号则与栈顶比较, 是一个类型则移除栈顶 , 最后如果栈是空的, 则所有括号都为有效括号.代码如下,

2022-01-31 21:05:17 926

原创 Easy - 14 - 最长公共前缀

原题链接 : 最长公共前缀首先审题, 从题目名可以得知, 需要我们给出最长的, 公共的前缀. 这里要注意区分前缀和子串(别问我为啥提示)…既然是前缀, 就比较简单了, 一般有两个思路 :横向比较拿首个字符串和第二个字符串做比较, 得到公共的前缀, 如果没有就不用再比了, 直接返回"" ; 如果有, 则拿得到的最长前缀和下一个字符串比较, 有则继续, 无则直接返回, 以此类推;纵向比较拿首个字符串的字符依次和后面所有的字符串的相应位置字符比较, 都有则继续比较下一个, 有一个无则直接返回

2022-01-30 17:48:00 363

原创 Easy - 13 - 罗马数字转整数

原题连接 : 罗马数字转整数这一题是Easy题, 其主要关键点在于下面这段逻辑, 即如何处理非常规情况下的罗马数字乍一看这段, 可能感觉有点晕乎乎的, 其实它的规律很明显, 如果一个罗马数字的左边比其本身小, 则减去, 其他的正常加和即可.Java代码如下 : // 核心逻辑 : 如果一个罗马数字的左边比其本身小, 则减去 // 有两种思路, 一种从左到右遍历, 一种从右往左遍历, 这里看心情, 喜欢哪个就用哪个 // 定义最终返回的数字 int ret_sum

2022-01-28 22:47:56 501

原创 数据仓库为什么要分层 ? 怎么分层?

1 序 说到数据仓库 , 大家应该都有一定的了解 , 越来越多的企业在做数字化转型 , 业务数据化 , 数据业务化 , 数据仓库是其中必不可少的一环 . 在数仓中有一个很基础、重要 , 但又很容易被忽略的内容 , 那就是数据仓库中的数据分层. 数据要分几层 ? 每一层放什么 ? 为什么要这样分 ? 下面我们就一起探讨一下 .2 为什么要分层在探讨数据仓库应该如何分层前 , 需要先思考另一个问题 : 数据仓库为什么要分层 ?数据分层的根本原因 , 用互联网黑话说 , 其底层逻辑 , 就两..

2021-09-03 11:30:08 4245 1

原创 数据仓库为什么要分层

数仓分层的意义数据仓库为企业提供数据支撑,数据到了数仓并不是总结,反而恰恰是一个开始。数据在数仓进过清洗、转换和加载,利用OLAP能力,向上为企业各业务赋能。为什么要对数仓进行分层?把复杂的问题建单化数仓在建模的时候按照一定的规则进行,而对其分层则是把一个复杂的问题分层次来解决,各层解决不同的问题数据结构更清晰分层建模的好处也表现为数据的结构层次更为清晰,每一层做什么事情一目了然,查...

2020-01-22 17:19:34 2000

原创 使用Azkaban调度执行spark-sql任务的小Demo

1 、准备数据准备表dm_action_log 数据如下:bdp_dayactionuv20190101click1117320190101exit1110920190101install1113920190101launch1108320190101login1122020190101page_enter_h5110...

2019-04-13 16:01:29 2149 2

原创 解决azkaban执行任务一直Running状态

1 、修改exec-server/plugins/jobtypes/commonprivate.properties文件,添加memCheck.enabled=false这一行,关闭内存检测2 、如果还是一直Running,查看exec中的执行日志发现虽然修改了不检测内存,但是还是在报内存不足,这时需要去看一下exec中的配置3、修改exec-server/conf/azkaban.pro...

2019-04-11 10:59:02 6362

原创 IDEA使用SparkSQL本地操作Hive的小Demo

在本地使用Spark操作Hive1 、使用IDEA创建一个Maven项目2 、从集群中拷贝出hive的配置 -> hive-site.xml3 、从集群中拷贝出hadoop的配置core-site.xml和hdfs-site.xml (非必须,对某些版本来说只需要hive-site.xml即可,最好都考过来)4 、把上面三个文件放到IDEA的resources目录下5 、编写De...

2019-04-10 21:16:59 1518 1

原创 [java编程题]打印指定年指定月份的日历

做了一个小的日历打印,没有使用数组,所以不能对日期进行操作,用了单个for循环打印,对初学者来说应该好理解点工具类:import java.util.Calendar;public class DaysTool { private int year; private int month; public DaysTool(){} public DaysTool...

2018-12-02 14:36:36 1612 1

原创 java基础之for循环与while循环

循环流程控制循环的三要素循环的起点循环的条件循环的步长循环的使用场景某一段代码需要重复执行,并且这多次执行之间是有一定规律的for循环for(循环的起点;循环的条件;循环的步长){//代码段//如果代码的条件成立,这里的代码段会重复执行//循环体}首先执行循环的起点判断循环的条件是否成立如果成立,则执行循环体,然后执行循环的步长,再判断条件是否成立,如果不成...

2018-11-15 17:11:12 249

原创 【计算机基础】计算机基础之原码、反码和补码

在内存中,最高位(最左)不是表示大小的,而是表示这个数的正反,0代表正数,1代表负数,所以最高位又叫符号位0000 1000 = 8 1000 1000 = -8计算机不会做除了加法之外的所有运算,所以便有了8 + 4 = 4 0000 1000 + 0000 0100 = 0000 1100 = 128 - 4 = 4 0000 1000 + 1000 0100 = 1000 1...

2018-11-13 21:42:02 232

原创 【java基础】计算机语言基础之进制与进制转换

进制的分类二进制概念用数字1和0表示所有的自然数,逢2进1八进制概念用数字0,1,2,3,4,5,6,7来表达所有的自然数,逢8进1十进制概念用数字0,1,2,3,4,5,6,7,8,9来表达所有的自然数,逢10进1十六进制概念用数字0,1,2,3,4,5,6,7,8,9和字母a,b,c,d,e,f来表达所有的自然数,逢16进1进制之间的相...

2018-11-13 21:18:28 376

原创 【java基础】流程控制语句if-else使用,控制台输入时间,输出下一秒

需求:从控制台输入时间,并输出这个时间的下一秒import java.util.Scanner;public class { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); System.out.println("请输入时: "); int hour = scann...

2018-11-11 18:09:50 424

原创 【java基础】打印九九乘法表

java基础for循环学习之打印九九乘法表public class TabNxn{ public static void main(String[] args){ for( int line = 1 ; line <=9;line ++){ for( int colum = 1; colum <= line; colum++){ //String.format()...

2018-11-10 21:40:00 284

原创 【java基础练习】控制台输入一个字母,转换其大小后输出

##分析题意,首先需要从控制台接收一个字符

2018-11-10 21:24:56 2354

空空如也

空空如也

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

TA关注的人

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