【剑指offer专项】5. 单词长度的最大乘积

【剑指offer专项】5. 单词长度的最大乘积,第1张

单词长度的最大乘积刷题总结 算法知识总结
  1. 该方法目前只能采取位运算的方法。 朴素做法是遍历每一对单词,然后遍历他们的每一个字母。该方法时间复杂度O( ( n ∗ n − 1 + ( n − 1 ) ∗ ( n − 2 ) ) + . . . ) ∗ l i ∗ l j (n*n-1+(n-1)*(n-2))+...)*l_i*l_j (nn1+(n1)(n2))+...)lilj)。时间复杂度过大。
    采用位运算时间复杂度为O( n 2 n^2 n2)相对简单很多。

  2. 位运算的图示

  3. 官方说可以采用map容器进一步优化位运算,但是有人说map的查找耗时是O(logN)所以还是不采取这种方法,深入理解位运算的原理。

C++代码总结
  1. for (auto [mask1, _] : map) map容器还可以用这种方式遍历,使用auto不需要定义变量类型,_表示不需要该参数。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/717278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存