- 浏览: 787542 次
- 性别:
- 来自: 深圳
最新评论
-
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
Netty源码学习-FileRegion -
飞天奔月:
写得有趣 ^_^
那一年你定义了一个接口 -
GoldRoger:
第二个方法很好
java-判断一个自然数是否是某个数的平方。当然不能使用开方运算 -
bylijinnan:
<script>alert("close ...
自己动手实现Java Validation -
paul920531:
39行有个bug:"int j=new Random ...
java-蓄水池抽样-要求从N个元素中随机的抽取k个元素,其中N无法确定
文章列表
public class MinOfShiftedArray {
/**
* Q69 旋转数组的最小元素
* 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。
* 例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。
*/
public static void main(String[] args) {
int[][] a={
{1,2,3,4,5},
{2,3,4,5,1},
{3,4,5,1 ...
public class ProbabilityOfDice {
/**
* Q67 n个骰子的点数
* 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
* 在以下求解过程中,我们把骰子看作是有序的。
* 例如当n=2时,我们认为(1,2)和(2,1)是两种不同的情况
*/
private static int MAX=6;
public static void main(String[] args) {
int n=2;
printProbabilityOfDice(n);//so ...
public class Power {
/**
*Q71-数值的整数次方
*实现函数double Power(double base, int exponent),求base的exponent次方。不需要考虑溢出。
*/
private static boolean InvalidInput=false;
public static void main(String[] args) {
double result=power(3,15);
System.out.println(result);
}
public static d ...
public class LongestSymmtricalLength {
/*
* Q75题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。
* 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
*/
public static void main(String[] args) {
String[] strs={
"google",
"elgoog",
"agollloge",
" ...
import java.util.LinkedList;
import java.util.List;
import ljn.help.*;
public class BTreeLowestParentOfTwoNodes {
public static void main(String[] args) {
/*
* node data is stored in leverOrder.'0' represents null node.
* e.g.
* int[] data={1,8,7,9,2,0,0,0,0,4,7};
* the ...
java-判断二叉树是不是平衡
- 博客分类:
- 算法与数据结构
参考了http://zhedahht.blog.163.com/blog/static/25411174201142733927831/
但是用java来实现有一个问题。
由于Java无法像C那样“传递参数的地址,函数返回时能得到参数的值”,唯有新建一个辅助类:AuxClass
import ljn.help.*;
public class BalancedBTree {
/**
* Q判断二叉树是不是平衡
1
/ \
2 3
/ \ \
4 5 6
/
7
*/
pub ...
public class OcuppyMoreThanHalf {
/**
* Q74 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字
* two solutions:
* 1.O(n)
* see <beauty of coding>--每次删除两个不同的数字,不改变数组的特性
* 2.O(nlogn)
* 排序。中间那个元素就是所求
*/
public static void main(String[] args) {
int[] a={4,3,4,2,4,5,4,4};
int re ...
public class FirstShowOnlyOnceElement {
/**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
* 1.int[] count:count[i]表示i对应字符出现的次数
* 2.将26个英文字母映射:a-z <--> 0-25
* 3.假设全部字母都是小写
*/
public static void main(String[] args) {
String str="abaccdeff";
int index=find(str);
...
思路来自:http://zhedahht.blog.163.com/blog/static/25411174201011445550396/
import ljn.help.*;
public class HasSubtree {
/**Q50.
* 输入两棵二叉树A和B,判断树B是不是A的子结构。
例如,下图中的两棵树A和B,由于A中有一部分子树的结构和B是一样的,因此B就是A的子结构。
1 8
...
public class PrintMatrixClockwisely {
/**
* Q51.输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:如果输入如下矩阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
则依次打印出数字1, ...
思路来自:http://zhedahht.blog.163.com/blog/static/2541117420116135376632/
写了个java版的
public class GreatestLeftRightDiff {
/**
* Q61.在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差。
* 求所有数对之差的最大值。例如在 ...
public class KthFibonaciPrime {
/**
* 求Fibonacci数列中第k个与前面所有数互质的数(除前面两个数 1,1 )
* 假设k=1时,2为所求
*/
public static void main(String[] args) {
KthFibonaciPrime k=new KthFibonaciPrime();
System.out.println(k.getKthRelativelyPrime(5));
}
/*
* 设fi为Fibonacci数列的第i项
* 下面这个方法的问题在 ...
/*
* 假设正整数 n 能表示为 i 个连续正整数之和且其第一个数为 x,则 n = x * i + (i - 1) * i/2,其中 n, x, i 都为正整数,
* 所以如果 x = (n - (i-1)*i/2) / i 为正整数(即分子对i取模等于0),则 n 就能表示为i个连续正整数之和。
* i 的取值范围为[2,y](y=1+sqrt(1+8n)/2,可通过一元二次不等式求得)
* 或者简单地认为i的取值范围为[2,n/2+1]
*/
public static void bestPrintContinuousNum(int target){ ...
简单总结下各种排序算法
- 博客分类:
- 算法与数据结构
public static void bubbleSort(int[] c){
for(int i=0,len=c.length;i<len;i++){
for(int j=0;j<len-i-1;j++){
if(c[j]>c[j+1]){
Helper.swap(c, j+1, j);
}
}
}
}
public static void selectionSort(int[] c){
for(int i=0,len=c.length;i<len;i++){
int k=i;
...
public class MaxCatenate {
/*
* Q.37 有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接,
* 问这n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。
*/
public static void main(String[] args){
String[] text = new String[]{
"abcd",
...