
Java算法
「已注销」
敲代码本身就是一件欲罢不能的事情
展开
-
算法最优 设计一个有getMIn功能的栈
题目实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小的元素的操作。要求1.pop,push,getMin操作时间复杂度都是O(1)。2.设计的栈类型可以使用现成的栈结构。思路在设计上,使用两个栈,一个栈保存当前栈中的元素,其功能和一个正常栈没有区别,记为stackData,另一个栈用于保存每一次比较的最小值,记为stackMin,具体方法有两种:一,压入数据规则假设...原创 2018-10-16 21:09:35 · 153 阅读 · 0 评论 -
java的全排列算法实现(next_permutation)
描述:给定一个整数数组,将这些数进行全排列。在C++中提供了next_permutation全排列方法,所谓next_permutation全排列即将按字母表顺序生成给定序列的下一个较大的序列,直到整个序列为减序为止。设当前序列为pn,下一个较大的序列为pn+1,那么不存在pm,使得pn < pm < pn+1;而在java中没有此方法,就自己手写了next_permutation的...原创 2018-12-27 09:49:25 · 5328 阅读 · 1 评论 -
用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:两个栈,有两个端口,那么肯定一个是用来入队的,另一个用来出队的。同时,由于栈是先进后出的,那么经过两次的入栈则会变为先进先出,即,第一次先进后出,第二次后进先出,两个加起来就变成了先进先出。算法实现public class TwoStacksQueue { public Stack<...原创 2018-12-17 20:34:39 · 134 阅读 · 0 评论 -
Java中BigDecimal类及8种舍入模式
Java在java.math包中提供的API类BigDecimal,用于对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符...原创 2018-12-23 17:49:53 · 308 阅读 · 0 评论