面试书上一些题目的整理:O(n)复杂度排序年龄 & 青蛙跳台阶

可以按照年龄的个数,设置99个桶,然后桶内处理。

 

青蛙跳台阶,每次1阶或者2阶,就是fib数

如果每次1到n阶,那么归纳法可得,是2^(n-1)

 

另外1*2 覆盖 2*n个矩阵的问题,仍然是Fib数。

 

求出一个数字里面有多少个1。一般的方法是用1来移位并且比较。但是也有巧妙的方法是,每次-1然后跟原来的数字&,能够消去一个1.

这种方法,很多题目都可以用。

 

有两个数,要改变多少位,可以让两个数字一样。

解法:先求出异或,然后统计这个异或结果里面的1就可以了。

 

 

浮点数比较

用"=="来比较两个double应该相等的类型,返回真值完全是不确定的。计算机对浮点数的进行计算的原理是只保证必要精度内正确即可。

 

求power,一般是这样:

要判断指数是不是负数,底数是不是0

然后指数偶数,就两两想乘;奇数,就两两想乘,再乘一个。

a^x = a^x/2 * a^x/2 (* a)

 

合并两个有序链表。这个可以用递归的去做,也可以迭代的去做。

 

看到第151页。

 

posted @   blcblc  阅读(276)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示