主页

leetcode sqrt(x) 刷题总结

前言 这篇文章呢主要是记录我刷leetcode时遇到的有趣的题。 这里说的有趣呢包含两方面,可能是题目很有趣,也有可能是它解法很有趣。 leetcode题目 sqrt(x) leetcode链接 这题是牛顿法的应用,我一直很喜欢那些应用数学方法从而巧妙解决的编程题,所以这篇文章大概会收集很多类似的题目。 牛顿法(维基百科):求解f(x) = 0的一个解可以借由f(x)的导数(或者是其泰勒级数的前几项)求解 首先,选择一个点x0,求解x0处切线与x轴的交点x1,也就是求解: \[0 = (x - x0) * f'(x0) + f(x0)\] 通常求得的这个解x1会比x0更接近f(x)的零点,所以我们可以不断去迭代逼近零点。迭代方程如下:...

阅读更多

在c++里用new和malloc的几点区别

前言 昨天面试c++的岗位的时候,面试官问我new和malloc的区别。因为平时写c++都是用的new,没怎么用过malloc,所以不知道它们的区别,没回答上来。现在来整理一下。 new和malloc的几点区别 返回类型安全性 用new申请内存空间时,返回的数据类型是声明类型的指针,而malloc返回的数据类型是void*,需要之后类型转换成我们想要的类型。 MyClass* mc = new MyClass(); MyClass* mc1 = (MyClass*) malloc(sizeof(MyClass)); 是否需要指定内存大小 new表达式声明时不需要指定要申请的内存空间的大小,而用mal...

阅读更多