JinFei's Blog

Thinking will not overcome fear but action will.

[力扣]409. 最长回文串

组成最长的回文串

题目描述 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 Example1: 输入: "abccccdd" 输出: 7 解释: 我们可以构造的最长的回文串是"dccaccd"...

[LeetCode]109. Convert Sorted List to Binary Search Tree

有序列表转为二叉搜索树

题目描述 Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. For this problem, a height-balanced binary tree is defined as a binary tree i...

[剑指Offer]二叉搜索树与双向链表

二叉搜索树、双向链表

题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 解题思路 递归思想 按照中序遍历的顺序,当我们遍历到根节点(值为10的节点)时,左子树已经转换成一个排序的链表了,并且处在链表中的最后一个节点是当前值最大的节点 把链表中的当前最大值与根节点连接起来 去转换右子树 把右子树中最小的节点...

[力扣]面试题36. 二叉搜索树与双向链表

二叉搜索树转为双向链表

题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。 下图展示了...

[剑指Offer]孩子们的游戏(圆圈中最后剩下的数)

环形链表

题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数….这样下去…...

[力扣]面试题22. 链表中倒数第k个节点

链表的倒数第k个节点

题目描述 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 Example1: 给定一个链表: 1->2->3->4->5, 和 k = 2. ...

[力扣]面试题44. 数字序列中某一位的数字

序列化数字

题目描述 数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。 请写一个函数,求任意第n位对应的数字。 Example1: 输入:n = 3 输出:3 Example2: 输入:n = 11 输出:0 限制 ...

[力扣]面试题43. 1~n整数中1出现的次数

统计1的个数

题目描述 输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。 例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。 Example1: 输入:n = 12 输出:5 Example2: 输入:n = 13 输出:6 限制 1 <= n < 2^31...

[力扣]面试题46. 把数字翻译成字符串

翻译字符串

题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 Example1: 输入: 12258 输出: 5 解释: 12258有5种不同的翻译,分别是"bccfi", "...

[剑指Offer]表示数值的字符串

字符串

题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。 解题思路 一个一个测试用例的判断是否符合规范, 比如 e不能是末尾,后面跟数字 e只能出现一次 +-可以...