1234567891011121314151617class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { // 边界条件设置 if (list1 == null) { return list2; } else if (list2 == null) { return list1; } else if (list1.val < list2.val) { // list1 的 val 小于 liste2,将 list1 节点的下一个节点指向递归后合并的链表 list1.next = mergeTwoLists(list1.next, list2); return list1; } else { ...
两数之和LeetCode 第 1 题 简单题
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例2
输入:nums = [3,2,4], target = 6输出:[1,2]
示例3
输入:nums = [3,3], target = 6输出:[0,1]
查看提示
2 <= nums.length <= 104-109 <= nums[i] <= 109-109 <= target <= 109只会存在一个有效答案
1234567891011121314151617clas ...
回文数LeetCode 第 9 题 简单题
给一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例1
输入:x = 121输出:true
示例2
输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例3
输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。
查看提示
-231 <= x <= 231 - 1
反转一半数字 反转一半数字解题思路
先考虑处理临界情况所有负数都不可能是回文最低位和最高位不为 0通过 while 循环去反转这个数判断条件就是反转之后的数是否大于当前的数如果大于说明反转完成如果小于就说明还需要去反转,就将反转后的数字 * 10,并将 x 的最 ...
后端开发
未读Java 多线程什么是并发和并行
并发:同一时刻多个指令在单个 CPU 上交替执行
并行:同一时刻多个指令在多个 CPU 上同时执行
线程实现方式Thread 实现通过将类继承 Thread 类,并重写 Run 方法
优点:实现简单,可以直接使用Thread 类中的方法
缺点:可扩展性差,不能继承其他的类
123456789101112131415161718class ExtendThread extends Thread { @Override public void run() { for (int i = 0; i < 20; i++) { System.out.println(getName() + " : " + "ExtendThread-Thread"); } super.run(); }}private static void runExtendThread() { ...
什么是Arthas(阿尔萨斯)Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
Arthas(阿尔萨斯)的用途
查找类加载jar包,类相关的Exception
反编译线上jar包,查找与本地代码不一致的地方
线上debug
全局视角查看系统的运行状况
监控JVM的实时运行状态
快速定位应用的热点,生成火焰图
直接从JVM内查找某个类的实例
安装Arthas
点击下载Arthas
解压后,在文件夹里有arthas-boot.jar,直接用java -jar的方式启动:1java -jar arthas-boot.jar
打印帮助信息:1java -jar arthas-boot.jar -h
Arthas基础入门启动 math-game 进行测试math-game是一个简单的程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果。
mat ...
数据开发
未读Spark的宽窄依赖如何划分宽窄依赖如果子RDD的一个分区完全依赖父RDD的一个或多个分区,则是窄依赖,否则就是宽依赖。这个完全依赖怎么理解呢?其实就是父RDD一个分区的数据是否需要切分,或者说子RDD分区要依赖父RDD分区的全部而不仅仅是一部分。上面这样说相对比较严谨,但也会有特殊情况,比如在只有一个分区的情况下,强行使用repartiton操作,即使父子RDD各自只有一个分区,也是宽依赖。这种情况生产中不会遇到,但要知晓。Narrow DependiesVolantis
多数元素 IILeetCode 第 229 题 中等题
给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。
示例1
输入:nums = [3,2,3]输出:[3]
示例2
输入:nums = [1]输出:[1]
示例3
输入:nums = [1,2]输出:[1,2]
查看提示
1 <= nums.length <= 5 * 104-109 <= nums[i] <= 109
进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。
HashMap 法 HashMap法解题思路
遍历整个数组,对记录每个数值出现的次数(利用 HashMap,其中 key 为数值,value 为出现次数)再去遍历这个 HashMap ,如果这个数值出现的次数 > ⌊ n/3 ⌋ 的话,那这个数值就是要寻找的值出现的数值最终要 ...
多数元素ILeetCode 第169题 简单题
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例1
输入:nums = [3,2,3]输出:3
示例2
输入:nums = [2,2,1,1,1,2,2]输出:2
查看提示
n == nums.length1 <= n <= 5 * 104-109 <= nums[i] <= 109
进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。
HashMap法 HashMap法解题思路
遍历整个数组,对记录每个数值出现的次数(利用 HashMap,其中 key 为数值,value 为出现次数)再去遍历这个 HashMap ,如果这个数值出现的次数 > ⌊ n/2 ⌋ ...
数据开发
未读常用端口号
常用端口号
2.x
3.x
访问 HDFS 端口号
50070
9870
NN 内部通信端口
9000
8020
访问 MR 执行任务情况端口
8088
8088
Yarn 内部通信端口
8032
8032
访问历史服务器端口
19888
19888
历史服务器内部端口
10020
10020
常用配置文件
常用配置文件
作用
core-site.xml
配置 Hadoop 的基本属性,例如 HDFS 的默认文件系统、I/O 和记录日志等设置。
hdfs-site.xml
配置 HDFS 的属性,例如数据块大小、副本数量、名字节点和数据节点的地址、缓存等。
yarn-site.xml
配置 YARN 的属性,例如资源管理器和节点管理器的地址、内存和 CPU 的分配、日志聚合等。
mapred-site.xml
配置 MapReduce 的属性,例如作业跟踪器和任务跟踪器的地址、作业优先级、输出压缩等。
hadoop-env.sh
配置 Hadoop 的环境变量,例如 JAVA_HOME、HADOOP_H ...