
算法
帅帅笔记
这个作者很懒,什么都没留下…
展开
-
用两个队列模拟栈Java
public class stack { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) { stack1.push(node); } public int pop() { int node=0;原创 2017-06-03 18:55:02 · 342 阅读 · 0 评论 -
二叉搜索树转有序双向链表
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { thi翻译 2017-09-05 10:27:53 · 171 阅读 · 0 评论 -
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一
public class Solution { public boolean IsPopOrder(int [] pushA,int [] popA) { int len = pushA.length; Stack s = new Stack(); int index =0; for(int i=0;i原创 2017-08-28 21:49:26 · 283 阅读 · 0 评论 -
计算汉明距离java
public static int hammingDistance(int x, int y) { int mark=0; int a=x^y; String b=Integer.toBinaryString(a); for(int i=0;i;i++){ if (b.charAt(i)=='1') mark++;原创 2017-06-03 16:12:43 · 739 阅读 · 0 评论 -
Fibonacci(Java)
递归算法简单但是太耗内存时间;非递归算法public int Fibonacci(int n) { if(n==1||n==0) return n; int n_1=0,n_2=1; int res=0; for(int i=2;i;i++){ res=n_1+n_2; n_1=n_2; n_2=res;翻译 2017-06-03 20:27:20 · 655 阅读 · 0 评论 -
求在一个格子里出现n棋子的最少操作数
题目小易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道要让棋盘上出现有一个格子中至少有i(1 ≤ i ≤ n)个棋子所需要的最少操作次数.输入描述:输入包括三行,第一行一个整数n(1 ≤ n ≤ 50),表示棋子的个数第翻译 2017-09-01 15:17:57 · 587 阅读 · 0 评论 -
最大疯狂队列的和
时间限制:1秒空间限制:32768K小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大翻译 2017-09-01 16:54:30 · 350 阅读 · 0 评论