自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 计算1^1+2^2+3^3+4^4+5^5+……+20^20 ,大数运算(加,乘)java实现

这个题目是明显的大数运算,不能直接使用int long double 早就超出范围了,要用数组结合字符串进行处理,分别实现大数的加法和乘法,然后使用实现的加法和乘法写出来n的n次幂的实现,最后 把它们加起来首先存进来就是要用string来存贮,运算的时候按位运算,charAt(i)-'0'来取值。注意一点,string改成char[]数组的时候要变成反序操作,因为对于一个数组是要从左到右,相加放值...

2018-03-26 14:49:30 3535 2

原创 打印两个有序链表的公共部分

要求:给出两个有序单链表的头结点 head1,head2,打印两个链表公共部分思路:因为已经有序,所以直接比较值大小,若1小,1后移,2小,2后移,相等,打印,二者一起后移,继续比较。public void printCommomPart(Node head1,Node head2) { while(head1!=null&&head2!=null) { if...

2018-03-25 17:13:43 259

原创 构造数组的MaxTree

要求:给定一个无序的,无重复元素的数组,生成MaxTree,要求每一个根节点处为当前最大值           时间复杂度要求O(n),空间复杂度O(n)思路:一开始第一个想法是排序,在生成二叉排序树之类的,堆排序递归之类的,但是题目要求了时间复杂度为O(n),这些方 法都超了。但是题目没有要求生成的MaxTree一定为完全二叉树之类的,只要符合根节点最大,所以,我们可以自己规定MaxTree的特...

2018-03-25 16:29:54 380

原创 滑动窗口中的最大值

要求:输入整形数组arr,与窗口大小w。窗口从左滑至最右,输出一个数组,里面每个值代表每种窗口中的最大值思路:1、剑指offer中也有,思路是维护一个双端队列作为窗口。队列中放的是元素标号!!而非元素值!!因为后续要检查者队列长度有没有超过w,直接看队列头的编号与当前比较值的编号差值即可。 2、若当前值大于队列中的某些元素,循环removeLast,并将当前值放入(addLast)。此外还要判断这...

2018-03-25 13:42:28 1087

原创 用一个辅助栈,来实现另一个栈的排序

要求:将一个栈按从顶到底,从大到小的顺序排序,只许额外申请一个栈来操作思路:如果stack,pop出来的元素比help栈顶小,直接压入。否则,help栈不断弹出元素,直到找到合适的地方再压入。总结:善于总结操作,不要每个情况都写一个if操作,看看内部的操作是不是都一样,一样的话可以提出来一起写。public static void sortStack(Stack<Integer> st...

2018-03-24 18:49:09 1140

原创 猫狗队列

要求:已知有如下的数据结构,实现一种猫狗队列,具有:          add:将cat dog 插入队列          pollAll:将所有猫狗按插入顺序移除          pollDog:将所有Dog按插入顺序移除          pollCat:将所有Cat按插入顺序移除          isEmpty:查看是否为空          isDogEmpty:查看Dog元素是否为...

2018-03-24 18:28:03 233

原创 仅用递归函数,栈操作,来逆序一个栈

要求:一个栈依次压入1,2,3,4,5,将其reverse操作,栈内变成5,4,3,2,1。不借助其他数据结构思路:要取得每次的栈底元素,分别为1,2,3,4,5,再压入5,4,3,2,1。          如何取得栈底元素?递归pop,直至栈为空,返回递归最深的那个元素,其他的还要再压回去,否则栈就变了。注意栈底            元素return之后就不压回去了,这样下次递归的时候才能取...

2018-03-24 17:23:54 768

原创 两个栈组成队列

要求:编写一个类,用两个栈来实现队列的基本操作,add , poll , peek思路:一个push栈,一个pop栈。注意不用每次都更新pop栈,若pop栈里还有上次push进来剩下的,就继续用,顺序是一样的,push栈里什么都不用管,相当于队尾。pop栈的栈顶为队列头总结:return最好不要放在if-else里面,能最后单写就单独写。把判断条件尽可能合并。import java.util.*;...

2018-03-24 16:27:18 255

原创 设计一个有getMin功能的栈

要求:设计一个new class,实现push,pop,getMin,复杂度O(1)思路:两个栈一起用,一个做正常栈使用(normalStack),一个用于存放最小值(minStack),minStack中随着normal中的压入一起,当它为空的时候压入第一个元素,不空的时候,只压入比栈顶元素小的。pop的时候也是,如果normal中pop的比min中栈顶元素大,min不操作,若相等,一起pop更...

2018-03-24 16:09:47 150

原创 单链表排序----(快排+归并+插入)

public static void quicksort(Node begin,Node end){ if(begin!=end){ Node partition=getpartition(begin,end); quicksort(begin,partition); quicksort(par...

2018-03-22 15:42:11 257

转载 Hadoop中的数据倾斜

 在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀...

2018-03-08 16:54:08 728

转载 Spark性能优化--数据倾斜调优与shuffle调优

一、数据倾斜发生的原理原理:在进行shuffle的时候,必须将各个节点上相同的key拉取到某个节点上的一个task来进行处理,比如按照key进行聚合或join等操作。此时如果某个key对应的数据量特别大的话,就会发生数据倾斜。数据倾斜只会发生在shuffle过程中。常用的并且可能会触发shuffle操作的算子:distinct、groupByKey、reduceByKey、aggregateByK...

2018-03-08 16:52:37 535

转载 Spark内存管理机制

a.      Spark静态内存管理在Spark 1.5版本及以前,Spark采用静态内存管理模型。对于一个Executor,对应的JVM Heap内存主要由三个独立的区块组成,如图所示。静态内存管理​Storage Memory。这片内存区域是为了解决对RDD进行的Cache缓存(通过程序中调用rdd.cache,rdd.persist等方法),还有节点间传输的广播变量Broadcasts,...

2018-03-08 16:35:30 744

转载 对比 Hadoop MapReduce 和 Spark 的 Shuffle 过程

如果熟悉 Hadoop MapReduce 中的 shuffle 过程,可能会按照 MapReduce 的思路去想象 Spark 的 shuffle 过程。然而,它们之间有一些区别和联系。从 high-level 的角度来看,两者并没有大的差别。 都是将 mapper(Spark 里是 ShuffleMapTask)的输出进行 partition,不同的 partition 送到不同的 reduc...

2018-03-08 16:12:06 899

空空如也

空空如也

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

TA关注的人

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