• 看了楼主的答案,思路清晰,但是有两点仍可改进:
    1. 使用二分法搜索可将时间复杂度从O(n)将至O(logn)
    2. 在求乘积的过程中,需要考虑数据溢出的情况,毕竟nums可能有1024个数字,每个数字在1-10之间。可以设定一个阈值,达到阈值后要,左右两侧的乘积可以约分。

    华为OD机试真题2023_Swift_100_数组的中心位置

    解题思路双层 for 循环将数组当前下标的左侧和右侧乘积算出来,再进行比较,如果相等就将当前下标保存到数组中,最后取数组的最小值即可

  • 纠正一下哈!因为m_instance_ptr = std::shared_ptr<Singleton>(new Singleton);不是原子操作,所以这样写不是线程安全的。 应该使用std::once_flag和std::call_once来初始化单例资源!

    C++懒汉式单例模式遇到多线程

    C++懒汉式单例模式遇到多线程 单例模式是一个创建型设计模式, 就是保证在整个程序运行中仅存在该类的一个实例, 比如数据库句柄/日志等. 单例模式要求 1 构造函数必须私有,...