letCode
lyjSmile
理想三旬
展开
-
记录腾讯的一面算法题
腾讯的一面算法题:记录下题目:给定两个超大的数字,超过了int的范围,用字符串表示,请把他们相加后用字符串返回。一:分析题目给我们两个字符串表示的数字,超过了Integer的范围,所以我们不能单纯的用Integer去相加了。我们可以把字符串拆开,从个位开始去相加,有进位的就往前进一位相加。用StringBuilder去添加每次相加的数。最后再返回StringBuilder的反转。二:代码实现在面试的时候呢,不仅仅只能考虑实现算法,面试官可能还会看你对边界情况的考虑,和代码的可阅读性等。在写的时原创 2020-07-14 11:43:52 · 371 阅读 · 0 评论 -
删除链表的节点。
1.题目:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], node = 1输...原创 2019-12-10 20:19:11 · 372 阅读 · 0 评论 -
判断链表是否有环
1.解题思路判断一个链表是否存在环行结构,一般看这个题目就会想到暴力解法,从头遍历到尾,看头是否与尾相等。但面试官肯定不会想要这种答案的。这种暴力解法也是存在bug的,如果链表尾部是和链表中间某个元素形成环,这种暴力解法就判断不了了。所以的有更好解法,2.解法:警察抓小偷,警察走两步,小偷走一步,如果链表是环型结构,警察就一定会抓到小偷。定义两个Node一个取next ,一个取next.nex...原创 2019-12-07 13:04:30 · 136 阅读 · 0 评论 -
合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4实现:这里我们用递归去实现如果 l1 或者 l2 一开始就是 null ,那么没有任何操作需要合并,所以我们只需要返回非空链表。否则,我们要判断 l1 和 l2...原创 2019-12-05 22:18:15 · 111 阅读 · 0 评论