算法
小炫剑指大厂
主要为应届生提供校招或者实习的经验,以及技术博文。
欢迎关注公众号:小炫剑指大厂
展开
-
Java用位图的思路实现组合
假设一共有n个字符,则可能的组合结果共有2^n-1种。 以输入3个字符a、b、c为例: 3个字符,可以用3个位来表示,从右到左的每一位分别用来代表a、b、c,该位为1表示取该元素,该位为0表示不取该元素。例如如组合a表示为001,组合b表示为010,组合ac表示为101,组合abc表示为111,而000是没有意义的,所以总共的结果就是2^n-1种。因此,我们可以从值1开始循环到2^n-1,输出...原创 2019-09-22 15:32:55 · 920 阅读 · 0 评论 -
java快速排序
static void quickSort(int [] s,int start,int end){ if(start>end){ return; } int mid=(start+end)/2; int low=start; int high=end; int stan...原创 2019-09-22 17:18:44 · 147 阅读 · 0 评论 -
为什么异或后可以找出数组中只出现一次而其他数字出现两次
1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?将所有的数全部异或,得到的结果与1^2^3^...^1000的结果进行异或,得到的结果就是重复数。但是这个算法虽然很简单,但证明起来并不是一件容易的事情。这与异或运算的几个特性有关系。首先是异或运算满足交换律...原创 2019-09-30 15:52:08 · 861 阅读 · 0 评论 -
n个骰子的点数 java
题目:滑动窗口的最大值把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。解题思路:1.解法一可以使用递归来求解。详细代码见书。2.解法二的思路为:在一轮循环当中,第一个数组总的第n个数字表示骰子和为n出现的次数。在下一轮循环中,我们加上一个新的骰子,此时和为n的骰子出现的次数应该等于上一轮循环中点数和为n-1,n-2,n-3,n-4,n-5...原创 2019-10-09 20:51:15 · 750 阅读 · 0 评论