
算法题
LifeIsForSharing
生命即为分享 Life is for sharing,我们相信人的天性是乐于分享的Share and Enjoy!
展开
-
Java实现两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。即:每个index上的数字只能用一次示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]方法一:暴力法遍历每个元素x,并查找是否存在一个值与target...原创 2018-10-24 18:08:59 · 8829 阅读 · 4 评论 -
有一个整形数组A,请设计一个复杂度为O(n)的算法,算出排序后相邻两数的最大差值。
有一个整型数组,请设计一个复杂度为O(n)的算法,算出排序后相邻两数的最大差值。Given an unsorted array, find the maximum difference between the successive elements in its sorted form.Try to solve it in linear time/space. Return 0 if the...原创 2018-09-27 16:44:19 · 1940 阅读 · 0 评论 -
Java密码验证合格程序
题目描述密码要求: 1.长度超过8位 2.包括大小写字母.数字.其它符号,以上四种至少三种 3.不能有相同长度超2的子串重复 说明:长度超过2的子串输入描述: 一组或多组长度超过2的子符串。每组占一行输出描述: 如果符合要求输出:OK,否则输出NG输入例子: 021Abc9000 021Abc9Abc1 021ABC9000 ...原创 2018-07-06 17:21:14 · 3723 阅读 · 0 评论 -
Java计算卡方值和P值
1.计算卡方值和P值2.伽马函数3.不完全伽马函数1.计算卡方值和P值P值就是计算卡方分布的分布函数值,公式如下: F(x;k)=γ(k2,x2)Γ(k2)=P(k2,x2)F(x;k)=γ(k2,x2)Γ(k2)=P(k2,x2) F(x;k) = \frac{\gamma (\frac k2,\frac x2) }{\Gamma (\frac k2)} = P(\...原创 2017-09-15 21:12:56 · 7675 阅读 · 3 评论 -
返回第n个无平方数因数的数
如果一个正整数不能被大于1的完全平方数所整除,那么我们就将该数称为无平方数因子的数。例如,靠前的一些无平方数因数的数是{1,2,3,5,6,7,10,11,13,14,15,17,19…}。给出一个整数n,返回第n个无平方数因子的数。 输入: 输入一个整数n. n的取值范围为1到1,000,000(其中包括1和1,000,000) 输出: 返回第n个无平方数因数的数 举例: n = 13, 返原创 2017-04-27 13:54:42 · 3157 阅读 · 0 评论 -
Java实现冒泡排序
1.算法概念2.算法原理3.算法稳定性4.算法实现1.算法概念 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。2.算法原理...原创 2017-04-18 09:55:23 · 443 阅读 · 0 评论 -
编写一个能将给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为95021。
编写一个能将给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为95021。/** * This algorithm offers guaranteed n*log(n) performance. * * @param array * @return */public static String getLargestNumByArrang原创 2017-04-01 15:48:06 · 3957 阅读 · 0 评论 -
编写一个交错合并列表元素的函数。例如:给定的两个列表为[a,B,C]和[1,2,3],函数返回[a,1,B,2,C,3]。
编写一个交错合并列表元素的函数。例如:给定的两个列表为[a,B,C]和[1,2,3],函数返回[a,1,B,2,C,3]。private static String[] arr1 = { "a", "B", "c", "D", "e" };private static String[] arr2 = { "1", "2", "3" };public static void main(St原创 2017-03-29 16:35:07 · 5040 阅读 · 0 评论 -
使用for循环、while循环和递归写出3个函数来计算给定数列的总和
public static void whileMethod(int[] array) { if (array == null || array.length < 1) { return; } int sum = 0; int i = 0; while ( i < array.length) { sum += array[i];原创 2017-03-22 09:31:16 · 4323 阅读 · 0 评论 -
查找有序数组中等于给定值的两个数
输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 public static void getTwoNum(int[] array,int sum) { if (ar原创 2017-03-21 22:31:12 · 1463 阅读 · 1 评论 -
找出数组中只出现一次的数字
public static void getOneTimeNum(int[] array) { if (array == null || array.length < 1) { return; } Map<Integer,Integer> map =new HashMap<Integer, Integer>(); for (int i = 0; i < a原创 2017-03-21 13:54:01 · 404 阅读 · 0 评论 -
求子数组的最大和
题目: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值,要求时间复杂度为O(n)。例如输入的数组为1,-2,3,10,-4,7,2,-5,和最大的子数组为3,10,-4,7,2,因此输出为该子数组的和18。public static void getMaxSumSubArray(int[] array)原创 2017-03-21 13:12:02 · 449 阅读 · 0 评论