CodeReview(有啥改进意见)
/**
* 金额分的转化 例如10000 会转化为 100.00
* @author xxx
* @version $Id: CentAmountFieldValueConverter.java, v 0.1$
*/
public class CentAmountFieldValueConverter implements FieldValueConverter {
public void convert(Field field) {
String value = (String) field.getDestValue();
if (StringUtils.isBlank(value)) {
return;
}
try {
long cent = Long.parseLong(value);
Money amount = new Money(cent);
amount.setCent(cent);
field.setDestValue(amount.toString());
} catch (Exception e) {
field.setDestValue(value);
}
}
}
分布式集群全局ID
/**
*java 实现一个集群模式下系统生成唯一流水号的算法
*1.流水号由数字组成,有一定规则,不能重复
*2.不能生成一次访问一次数据库
*/
红包分配题(建议45分钟)
● 输入: 50 个文件,包含了 1 亿红包数据,其中每个文件 200 万行数据,数据均匀分布
● 输出: 100 个文件,分布了 1000 万用户余额数据,其中每个文件 10 万行数据,数据按 uid/100 规则分布
● 需要做什么: 在单机上,消化完所有的红包数据,并更新到用户余额数据文件中,要求速度快高性能
单向链表反转
/**
*要求:一个单向链表a->b->c->d->e, 不能使用额外的空间,单向链表反转,最终结果是e->d->c->b->a
*/
public class Node {
..
}
.
二叉树节点最大距离
/**
*要求:请用代码写出,求二叉树中节点的最大距离
*/
public class MaxDistanceTree{
..
}
补全表达式
/**
*编写一段程序,从标准输入得到一个缺少左括号的表达式并打印补全括号之后的表达式:
*例如:给定输入: 1+2)*3-4)*5-6)))
*你的程序输出是:
*((1+2)*((3-4)*(5-6)))
*/
合并LIST
/**
* 合并2个LIST 并且排序输出
* 输入:list1: uredffghdfgsdaaerikedfg..
list2: ujporsiolyjsffghhferzop..
* 输出 resultList:aabbccddeeff。。。
*/
求最大连续值的和
/**
* 给出一个指定整形数组,求从数组某下标开始连续求和的最大值,并给出起始及结束的下标
* 如:给定数组[-1,8,-7,6,-10,-3,3,2]
* 那么连续求和最大值是7,开始下标是1、结束是3,即是[8,-7,6]的和
*/
public void solution(int[] array) {
}
随机产生20个字符并且排序
/**
*随机产生20个字符并且使用快速排序法排序
*/