算法
chengwenyao18
这个作者很懒,什么都没留下…
展开
-
圆圈中最后剩下的数字
import java.util.ArrayList;import java.util.List;public class LastRemaining { static class Node{ public Node(int value, int flag, Node next) { super(); this.value = value; this.flag = f原创 2015-06-28 13:41:33 · 464 阅读 · 0 评论 -
求一个全排列函数
px; ">求一个全排列函数:如 p([1,2,3])输出:[123]、 [132]、 [213]、 [231]、 [321]、 [323]public class ComposeArr { public static void solution(int[] a, int start, int end) { if (null == a) { return; }原创 2015-06-10 22:04:34 · 960 阅读 · 0 评论 -
链表相邻元素翻转
链表相邻元素翻转,如 a->b->c->d->e->f-g,翻转后变为: b->a->d->c->f->e->gimport java.util.ArrayList;import java.util.List;class Node{ char value; Node next; public Node(){ } public Node(char value, Node n原创 2015-06-10 13:52:40 · 439 阅读 · 0 评论 -
网易游戏笔试题─两个圆相交,交点是A1,A2。现在过A1点做一直线与两个圆分别相交另外一点B1,B2。 B1B2可以绕着A1点旋转。问在什么情况下,B1B2最长
From:http://blog.csdn.net/iamzhaiwei/article/details/7685143两个圆相交,交点是A1,A2。现在过A1点做一直线与两个圆分别相交另外一点B1,B2。B1B2可以绕着A1点旋转。问在什么情况下,B1B2最长?设两个圆的圆心分别为O1,O2。作O1C垂直于B1B2,O2D垂直于B1B2。|B1B2| = |A1B1| + |A1B2转载 2015-06-08 21:56:21 · 1515 阅读 · 0 评论 -
字符串原地压缩
题目描述:“ eeeeeaaaff" 压缩为 "e5a3f2",请编程实现。public class StringCompress { public static String solution(String str){ if(null == str){ return null; } if(1==str.length()){ return str; }原创 2015-06-09 09:46:27 · 604 阅读 · 0 评论 -
给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。要求:空间复杂度 O(1),时间复杂度为 O( n)。import java.util.ArrayList;import java.util.List;public class ExchangeOddEven { public static void solution(List list){ if(null原创 2015-06-09 10:45:10 · 2797 阅读 · 2 评论 -
谷歌面试题:数组元素移动交叉
题目:输入数组:{a1,a2,…,an,b1,b2,…,bn}, 在O(n)的时间,O(1)的空间将这个数组的顺序变为{a1,b1,a2,b2,a3,b3,…,an,bn}, 且不需要移动,通过交换完成,只需一个交换空间。解答:从结果入手,结果数组的中垂线两边分别a数组的一半和b数组的一半的混合,继续将子数组以中垂线划分下去,可以看到类似的规律,因此,可以使用类似的分治算法实现。p转载 2015-06-09 10:57:06 · 522 阅读 · 0 评论 -
最长递增子序列
题目描述:设 L=是 n 个不同的实数的序列, L 的递增子序列是这样一个子序列Lin=,其中 k1求最大的 m 值。import java.util.ArrayList;import java.util.List;public class MaxIncreaseLen { public static int solution(List list){ if(原创 2015-06-09 09:46:47 · 354 阅读 · 0 评论 -
求最大重叠区间大小
题目描述:请编写程序,找出下面“输入数据及格式”中所描述的输入数据文件中最大重叠区间的大小。对一个正整数 n ,如果 n 在数据文件中某行的两个正整数(假设为 A 和 B)之间,即 A=n>=B ,则 n 属于该行;如果 n 同时属于行 i 和 j ,则 i 和 j 有重叠区间;重叠区间的大小是同时属于行 i 和 j 的整数个数。例如,行( 10 20)和( 12 25)的重叠原创 2015-06-09 10:11:39 · 1363 阅读 · 0 评论 -
整数的素数和分解问题
歌德巴赫猜想说任何一个不小于 6 的偶数都可以分解为两个奇素数之和。对此问题扩展,如果一个整数能够表示成两个或多个素数之和,则得到一个素数和分解式。对于一个给定的整数,输出所有这种素数和分解式。注意,对于同构的分解只输出一次(比如 5 只有一个分解 2 + 3,而 3 + 2 是 2 + 3 的同构分解式)。例如, 对于整数 8,可以作为如下三种分解:(1) 8 = 2 +原创 2015-06-09 10:36:15 · 807 阅读 · 0 评论 -
求正整数 n 所有可能的和式的组合
求正整数 n 所有可能的和式的组合(如; 4=1+1+1+1、 1+1+2、 1+3、 2+1+1、2+2)import java.util.ArrayList;import java.util.List;public class PrintSubArr { static List tmp = new ArrayList(); public static void solutio原创 2015-06-09 21:53:19 · 1028 阅读 · 0 评论 -
2 个有序List的交集
import java.util.ArrayList;import java.util.List;public class CommSortSet { public static List solution(List list1, List list2){ List result = new ArrayList(); int length = Math.min(list1.size原创 2015-08-19 13:42:44 · 465 阅读 · 0 评论