统计数组中不同元素出现的次数(时间复杂度O(n),空间复杂度o(1))
2014-09-29 22:33
831 查看
思路:数组按序扫描,通过当前元素的值作为下标,找到下一个元素。最后得到的数组中,下标(因为下标从0开始的,故输出时需要+1)为数组中出现的元素,每个下标对应的值取反输出即是该元素出现的频率。
若当前元素小于0, 则跳过;
若当前元素大于0, 则判断其作为下标索引到的元素是否大于0,
若大于0,则索引到的元素赋值给当前元素,索引到的元素置为-1;
若小于0,则索引到的元素自减1,当前元素置为0;
若当前元素小于0, 则跳过;
若当前元素大于0, 则判断其作为下标索引到的元素是否大于0,
若大于0,则索引到的元素赋值给当前元素,索引到的元素置为-1;
若小于0,则索引到的元素自减1,当前元素置为0;
相关文章推荐
- 统计数组中不同元素出现的次数(时间复杂度O(n),空间复杂度o(1))
- 统计数组中不同元素出现的次数(时间复杂度O(n),空间复杂度o(1))
- 如何在时间复杂度为O(n),空间复杂度为O(1)的条件下,统计数组中不同元素出现的次数
- PHP 查找一个在数组中出现次数超过一半的数,时间复杂度O(n),空间复杂度O(1)
- 一个一维整形数组,若干个数字,统计数组中不同的数字出现的次数,并按照出现频率从小到大排序输出,相同频率按数字大小排序输出
- 找出一个数组中出现次数超过一半的那个数字,要求时间复杂度O(n)和空间复杂度为O(1)。
- 统计一个无序数组中出现次数最多的元素
- 统计数组中各数字(元素)出现的次数
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 统计数组中元素出现的次数——Java小程序
- 某整形数组中除了两个单身整数外, 其余的整数都是成对出现的, 利用C/C++代码求出这两个单身整数。 要求: 时间复杂度o(n), 空间复杂度o(1)------某公司招聘试题
- java 统计数组中各元素出现的次数
- c++在数组中查找元素并返回位置下标,统计某元素出现次数程序
- 随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素
- 主元素问题(判断数组是否出现主元素,O(n)时间内找出主元素,主元素出现次数)
- 统计一个无序数组中出现次数最多的元素
- 在一个整型数组中有一个元素的出现次数超过了数组长度的一半,试设计一个 在时间上尽可能高效的算法,找出这个元素。
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 统计数组中每个元素出现的个数,时间复杂度 O(n),空间 O(1)
- 随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素