01 2018 档案
摘要:原题描述Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see bel
阅读全文
摘要:原题描述You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes co
阅读全文
摘要:题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 题目传送 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 题目传送 解题思路用一个栈data保存数据,用另外一个栈min保存依次入栈最小的数, pop的时候同时抛出data和min。 例
阅读全文
摘要:题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 例如,如果输入如下矩阵: 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,
阅读全文
摘要:题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 题目传送 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 题目传送 输入描述二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 输入描述
阅读全文
摘要:题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 题目传送 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 题目传送 解题思路比较两个链表的首结点,哪个小的的结点则合并到第三个链表尾结点,并向
阅读全文
摘要:题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 题目传送 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 题目传送 解题思路首先需要递归pRoot1树,找到与pRoot2根一样的节点,这需要一个
阅读全文
摘要:题目描述输入一个链表,反转链表后,输出反转后链表的头节点。 题目传送 题目描述 输入一个链表,反转链表后,输出反转后链表的头节点。 题目传送 解题思路方法一:循环操作 解题思路 方法一:循环操作 public class Solution { public ListNode ReverseList(
阅读全文
摘要:题目描述输入一个链表,输出该链表中倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点 解题思路两个指针,第一个指针和第二个指针都指向头结点,然后先让第一个指正走(k-1)步,到达第k个节点。然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了
阅读全文
摘要:题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分. 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分. 解题思路维护两个指针,一个从头
阅读全文
摘要:接着上期内核源码(六)的最后,DAGSchedule会将每个Job划分一系列stage,然后为每个stage创建一批task(数量与partition数量相同),并计算其运行的最佳位置,最后针对这一批task创建一个TaskSet对象,调用submitTasks方法提交TaskSet到TaskSch
阅读全文
摘要:题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 解题思路当底数为0且指数小于0时:会出现对0求倒数的错误情
阅读全文
摘要:题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解题思路可能引起死循环的解法:不断右移目标数的二进制,每次跟1进行与运算判断是不是为1. 解题思路 /* * 该解法如果输入时负数会陷入死循环, *
阅读全文
摘要:题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路分析 class Solution { public: //方法一:递归,代码简单,但是耗时长,约500ms int rectCover(int numbe
阅读全文
摘要:题目描述一个递增排序的数组的一个旋转(把一个数组最开始的若干元素搬到数组的末尾,称之为数组的旋转),输出旋转数组的最小元素。 题目描述 一个递增排序的数组的一个旋转(把一个数组最开始的若干元素搬到数组的末尾,称之为数组的旋转),输出旋转数组的最小元素。 解题思路: 解题思路: 方法一:顺序查找,时间
阅读全文
摘要:题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 题目链接 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 题目链接 解题思路入队:将元素进栈A 出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并
阅读全文
摘要:题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重
阅读全文
摘要:题目描述输入一个链表,从尾到头打印链表每个节点的值。 题目描述 输入一个链表,从尾到头打印链表每个节点的值。 解题思路方法一:借助递归实现 解题思路 方法一:借助递归实现 public class Solution { ArrayList<Integer> arrayList=new ArrayLi
阅读全文
摘要:引言 对于Spark开发人员来说,了解stage的划分算法可以让你知道自己编写的spark application被划分为几个job,每个job被划分为几个stage,每个stage包括了你的哪些代码,只有知道了这些之后,碰到某个stage执行特别慢或者报错,你才能快速定位到对应的代码,对其进行性能
阅读全文
摘要:题目描述 Note: This is an extension of House Robber. After robbing those houses on that street, the thief has found himself a new place for his thievery s
阅读全文
摘要:题目描述You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stoppin
阅读全文
摘要:题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 题目链接 题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符
阅读全文
摘要:题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目链接 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数
阅读全文
摘要:引言 对于很多程序员来说,写递归程序是比较头疼的一件事,即使是把程序看懂了,轮到自己写的时候也是一脸懵逼,那么到底写递归有没有方法论呢?当然!本文就将从数学归纳法的角度教你如何写递归程序。 数学归纳法与递归的关系 有人会疑惑,不是说好写递归嘛,怎么扯到数学归纳法了?别急慢慢往下看你就知道了。 首先我
阅读全文
摘要:引言 我们知道在application中每存在一个action操作就会触发一个job,那么spark底层是怎样触发job的呢?接下来我们用一个wordcount程序来剖析一下job的触发机制。 解析wordcount源码 new PairRDDFunctions(rdd) 在上面我们也可以看到red
阅读全文
摘要:题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路首先想到的解决方案是根据普通跳台阶题目改编,因为可以跳
阅读全文
摘要:上篇文章我们剖析了Master的原理和源码,知道了当Master使用资源分配算法将资源分配完成后,就会给对应的Worker发送启动Driver或者Executor的消息,那么Worker收到这些消息后,具体是怎么启动Driver或者Executor的呢?这篇文章就让我们深入剖析一下Worker的原理
阅读全文
摘要:一. 状态改变机制源码分析 在剖析Master核心的资源调度算法之前,让我们先来看看Master的状态改变机制。 Driver状态改变 可以看出,一旦Driver状态发生改变,基本没有好事情,后果要么是删除Driver,要么是报异常! removeDriver方法: 可以看出,一旦Driver状态发
阅读全文
摘要:一. 主备切换机制 概要 Spark Master主备切换可以基于两种机制,一种是基于文件系统的,一种是基于Zookeeper的,基于文件系统的主备切换机制,需要在Active Master挂掉之后,由我们手动去切换到Standby Master上;而基于Zookeeper的主备切换机制,可以实现自
阅读全文