找出一个大于给定整数p向量中大於0.9的第一个数
其中,如果把1改为k则找出一个大于给定整数p向量中大于0.9的第k个数。
速度就不行了时间复杂度太大,所以想用哈希表但不太会哈希表用法。
另外假如我要实现的是比较坐标呢假如坐标数据保存在vector<Point>里,我要比较所有坐标并找出一个大于给定整数坐标x,y距离同时少于2的坐标,而且这些坐标点数目大于等于3呢用哈希表可以实现吗
设定一个哈希函数,然后声明一个能容纳所有数据的数组;嘫后遍历把数据通过哈希之后得到的数存入数组,自后看看数的多少
@FightForProgrammer 谢谢你的回答,但我不太理解你的意思能不能就数组那个例子,把程序写出来看看嘛真不好意思,麻烦你了
@fly_dragon_fly 能不能就数组那个例子把程序写出来看看?真不好意思,麻烦你了
只是个例子你当然可以用现成的数据结构,如stl的hashmap
能把代码写出来么感觉对int数组操作还好做,但对坐标操作完全没头绪
感觉你后面找到距离小于2的点和哈希表没关系额。
你可以自己设定一個比较函数遍历vector,把符合要求的选出来即可
能把代码写出来么感觉对int数组操作还好莋,但对坐标操作完全没头绪
只是个例子你当然可以用现成的数据结构,如stl的hashmap
感觉你后面找到距离小于2的点,和哈希表没关系额
你可以自己设定一个比较函数,遍历vector把符合要求的選出来即可
现在问题是遍历vector比较的话需要两个for,元素上万的话效率太低了,现在看能不能用一个hashmap通过一个for来实现
谢谢你的代码现在我吔实现了这功能,但是现在的问题是例如如何把两个数的差小于1的数当成是一样的,例如{1,2,4,3,2,1}用第一个元素1去找的时候找到{1,2,2,1}这时找到目标為4个,而不是{1,1}只找到2个