原文:输入一个正数 n,输出所有和为 n 连续正数序列。 java实现

用了半小时才写出来啊, 其实这种思路应用范围很广,利用有序性这个特点,比如本体只要是有序就行,例如两个集合是有序的,求交集,有序数组的查找,有序数组的归并,有序有了优化的可能。 输入一个正数 n,输出所有和为 n 连续正数序列 例如输入 ,由于 ,所以输出 个连续序列 和 。 分析:我们用两个数small和big分别表示序列的最小值和最大值。首先把small初始化为 ,big初始化为 。如果从sm ...

2014-06-26 17:43 0 2973 推荐指数:

查看详情

输入一个整型数组,数据元素有正数也有负数,求元素组合成连续子数组之和最大的子数组,要求时间复杂度为O(n)。

  如果不考虑时间复杂度,我们可以枚举出所有子数组并求出他们的和。不过非常遗憾的是,由于长度为n的数组有O(n2)个子数组(即:n + n-1 + ... + 1=n(n+1)/2);而且求一个长度为n的数组的和的时间复杂度为O(n)。因此这种思路的时间是O(n3)。   上边这句话不是原创 ...

Tue Mar 24 06:28:00 CST 2015 2 3555
Java输出double类型中的最小正数和最大正数

这是《写给大忙人看的java核心技术》中的一道练习题。 1. 输出最大正数值 直接输出包装类Double的MAX_VALUE。 2. 输出最小正数值 使用Math.nextUp()方法也能输出最小的正数 java.lang.Math.nextUp(double ...

Thu Feb 23 18:01:00 CST 2017 0 5780
在从1到n正数中1出现的次数

题目:输入一个整数n,求从1到nn个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。分析:这是一道广为流传的google面试题。 简单的方法就是按照给位进行分析 在个位出现1的个数=n/10+(个位=0,0;个位> ...

Mon May 28 23:40:00 CST 2012 0 4195
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM