古典程序猿
面向情怀编程

算法

面试题精选:神奇的斐波那契数列-XINDOO

面试题精选:神奇的斐波那契数列

斐波那契数列,其最开始的几项是0、1、1、2、3、5、8、13、21、34…… ,后面的每一项是前两项之和,事实上,斐波那契在数学上有自己的严格递归定义。 f0 = 0 f1 = 1 f(n) = f(n-1) + f(n-2) 斐波那契数...

xindooxindoo阅读(1676)去评论赞(0)
今年是冷冬?我爬了北京10年的气温,哟 还真是!-XINDOO

今年是冷冬?我爬了北京10年的气温,哟 还真是!

WARNING: 非严谨气相数据分析,旨在表达数据分析过程,结论还是看看就好,更严谨的信息请查阅专业的气相资料。 10月份的北京,仿佛酷热的夏季戛然而止,然后变成了春夏秋冬随机播放的模式,与往年不同的是今年很多人都在说“今年比去年冷多了”。...

xindooxindoo阅读(1393)去评论赞(0)
面试题精选:单链表排序也能玩出花来-XINDOO

面试题精选:单链表排序也能玩出花来

今天国庆节,祝大家中秋节快乐,顺便给大家拜个早年[狗头]。不过最近还在准备面试的同学们不要浪太狠,还是要好好学习的鸭。 单链表的排序在数据结构类的面试题中简直是集大成者,什么排序、链表、链表删除、添加…… 都能体现在单链表排序上,也非常考验...

xindooxindoo阅读(2593)去评论赞(0)
生日悖论是啥?我用它省了上百G的内存-XINDOO

生日悖论是啥?我用它省了上百G的内存

@ 生日悖论: 是指在不少于 23 个人中至少有两人生日相同的概率大于 50%。例如在一个 30 人的小学班级中,存在两人生日相同的概率为 70%。对于 60 人的大班,这种概率要大于 99%。从引起逻辑矛盾的角度来说,生日悖论并不是一种 ...

xindooxindoo阅读(3836)去评论赞(1)
从0到1打造正则表达式执行引擎(二)-XINDOO

从0到1打造正则表达式执行引擎(二)

在上篇博客从0到1打造正则表达式执行引擎(一)中我们已经构建了一个可用的正则表达式引擎,相关源码见https://github.com/xindoo/regex,但上文中只是用到了NFA,NFA的引擎建图时间复杂度是O(n),但匹配一个长度...

xindooxindoo阅读(3940)去评论赞(1)
面试题精选:循环队列-XINDOO

面试题精选:循环队列

近期在面试找工作的小伙伴们很多啊,我周围就有好几个认识的朋友在找工作,于是我突发奇想在CSDN开了一个面试题精选的专栏,主要会关注一些算法题、设计题,次要会补充一些java面试相关的题(比较本博主是java出身)。其实在此之前已经写过一些相...

xindooxindoo阅读(4327)去评论赞(1)
从0到1打造正则表达式执行引擎-XINDOO

从0到1打造正则表达式执行引擎

今天是五一假期第一天,这里先给大家拜个晚 咳咳!!祝大家五一快乐,我这里给大家奉上一篇硬核教程。首先声明,这篇文章不是教你如何写正则表达式,而是教你写一个能执行正则表达式的执行引擎。 网上教你写正则表达式的文章、教程很多,但教你写引擎的并不...

xindooxindoo阅读(3897)去评论赞(1)
大厂面试题:求根号2简单?高级算法你肯定不会-XINDOO

大厂面试题:求根号2简单?高级算法你肯定不会

前两天逛github看到一道很简单的面试题——如何不用库函数快速求出$\sqrt2$的值,精确到小数点后10位! 第一反应这不很简单嘛,大学数据结构课讲二分查找的时候老师还用这个做过示例。但转念一想,能作为大厂的面试题,背后绝对没有那么简单...

xindooxindoo阅读(5507)去评论赞(6)
布隆过滤器(BloomFilter)原理 实现和性能测试-XINDOO

布隆过滤器(BloomFilter)原理 实现和性能测试

布隆过滤器(BloomFilter)是一种大家在学校没怎么学过,但在计算机很多领域非常常用的数据结构,它可以用来高效判断某个key是否属于一个集合,有极高的插入和查询效率(O(1)),也非常省存储空间。当然它也不是完美无缺,它也有自己的缺点...

xindooxindoo阅读(5324)去评论赞(0)
用正则表达式匹配3的任意倍数-XINDOO

用正则表达式匹配3的任意倍数

正则表达式能匹配3的任意倍数?(注意是任意倍数) ,我曾经也很震惊,但确实可以。我5年多前练习正则表达式,在Regex Golf这个正则表达式测试网站上发现了这个题,当时完全没有任何头绪,于是我在知乎提问正则表达式如何匹配 3 的倍数 ,但...

xindooxindoo阅读(4530)去评论赞(0)

Leetcode 295. Find Median from Data Stream

题目链接295. Find Median from Data Stream   在一个有序数组中找中位数,但需要支持再数组中添加新的元素。本来是有序里的,可以很轻易就查到中位数,但如果添加新数字后,不一定有序。如果先对数组排序,那代价就比较...

xindooxindoo阅读(4885)去评论赞(0)
最小二乘法的极大似然解释-XINDOO

最小二乘法的极大似然解释

  最开始学习机器学习的时候,首先遇到的就是回归算法,回归算法里最最重要的就是最小二乘法,为什么损失函数要用平方和,而且还得是最小?仔细想想最小二乘法视乎很合理,但是合理在哪,怎么用数学方法来证明它合理。 ~谢谢打赏~ 赏

xindooxindoo阅读(5131)去评论赞(0)

Leetcode 19.Remove Nth Node From End of List

题目链接:19. Remove Nth Node From End of List   删除单链表中的倒数第n个节点,链表中删除节点很简单,但这道题你得先知道要删除哪个节点。在我的解法中,我先采用计数的方式来确定删除第几个节点。另外我在头节...

xindooxindoo阅读(4830)去评论赞(0)

Leetcode 6. ZigZag Conversion

原题链接:6.ZigZag Conversion   题目名称『曲折变换』,但给的样例只有三行,看不出到底怎么样曲折变化,所以这里我再补充一个样例,大家肯定一下就懂了。 ~谢谢打赏~ 赏

xindooxindoo阅读(4853)去评论赞(0)

Leetcode 114. Flatten Binary Tree to Linked List

Leetcode 114. Flatten Binary Tree to Linked List   题目意思很简单,就是把一棵二叉数转换为链表,虽然题目中没说以什么样的形式转换,但看下样例就很容易看出来,是以先序遍历的次序转换成链表。这里...

xindooxindoo阅读(4847)去评论赞(0)

Leetcode 198. House Robber

原题链接:198. House Robber   一句话理解题意,有个偷马贼晚上要偷尽可能值钱的马,但连续两头马被偷会触发报警,问他如何在不触发报警(不偷连续的两匹马)的情况下偷到总价值最高马,返回最高总价值。   看到maximu...

xindooxindoo阅读(4658)去评论赞(0)

Leetcode 347.Top K Frequent Elements

Top K Frequent Elements   一句话理解题意:输出数组中出现次数对多的k个数。   在如果用C语言来写这个题目,思路就是先按数的大小排序,然后再用一个结构体数组保存每个数的出现次次数。 因为数组已经有序了,所以只需要遍...

xindooxindoo阅读(4925)评论(1)赞(0)

Leetcode Single Number II (面试题推荐)

    还记得《剑指offer》和《编程之美》等书上多次出现的找一个数组中只出现一次的数那个题吗?     leetcode也有这道题 链接here  相信大家都知道用异或在O(n)的时间复杂度内求出的方...

xindooxindoo阅读(4824)去评论赞(0)

codeforces 347A - Difference Row

给你一个序列,让你求(x1 - x2) + (x2 - x3) + ... + (xn - 1 - xn).值最大的一个序列,我们化简一下公式就会发现(x1 - x2) + (x2 - x3) + ... + (xn...

xindooxindoo阅读(4627)去评论赞(0)

codeforces 344B - Simple Molecules

       题意就是给出3个原子的化学价,然后组成一个分子,要保证这个分子是稳定的,如果你还记得高中化学知识的话这个很容易理解,然后让你求出1-2  2-3 1-3 号原子之间有几条键, 这里我分别用ta tb t...

xindooxindoo阅读(4592)去评论赞(0)

登录

找回密码

注册