在力扣网上做了一道C语言的两数之和题,难度简单。运用书本上所学的知识,遍历两遍数组也是让我给做出来了,但是结果让人大跌眼镜的是,用时达到320ms,属于提交中垫底的部分。
之前也是做过几道题,提交也基本在百分之五十以上。我开始金评论区寻找答案,评论中的C与C++的不多,算法都是两遍遍历数组,也是没有找到我想要的答案。最终在解法中发现了提高数组效率的Hash算法。以下是一位利用数组散列法高效率通过者的解法。
对hash数组进行边填充边检测的算法极大的提高了运行的效率。
利用不同的算法,效率以下提升了几十倍。Hash算法是一个广义的算法,也可以认为是一种思想,使用Hash算法可以提高存储空间的利用率,可以提高数据的查询效率,也可以做数字签名来保障数据传递的安全性。刚接触不同算法的巨大妙用,让人惊叹。对于Hash算法也只是接触点皮毛,从此将在探索算法的道路上一去不返。不过暴力解法真上头。哈哈哈!算法小白,请多指教。