数组中,有一个元素的值在数组中重复的个数是超过一半,获得元素超过一半的元素值 int MoreThanHalfNumber(int * arr, int n){ int result = arr [0]; int time = 1; for (int i = 1; i < n; i++){ if (time == 0){ …
对于分治(Divide and Conquer)的题目,最重要是 1.如何将原问题分解为若干个子问题, 2.子问题中是所有的都需要求解,还是选择一部分子问题即可. 还有一点其实非常关键,但是往往会被忽视:分解后的子问题除了规模较原问题小之外,必须和原问题具有相同的性质. 在子问题的划分时,只有这一点保证,才能递归求解子问题,从而得到solution. 下面通过几个例子,详细地介绍下这个思路. 题目一: You have n mobile phones and a contraption that…
一.集合类介绍 1.List(元素有放入顺序,可重复) 1.1.List的实现 1.1.1.ArrayList ArrayList就是动态数组(需要连续的存储空间),用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了Collection和List接口,灵活的设置数组的大小等好处.在指定位置的查找效率较高,是非线程安全的. public class Test { public static void main(String arg[]) { /** * ArrayL…