自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 面试题 05.07. 配对交换

题目配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。示例1: 输入:num = 2(或者0b10) 输出 1 (或者 0b01)分析: 构建两个掩码,分别取出奇数位和偶数位,奇数位右移,偶数位左移,然后取或class Solution: def exchangeBits(self, num: int) -> int: """ 1. 取出奇数位,偶数位置0 2

2021-07-29 20:31:42 77

原创 面试题 05.06. 整数转换

题目整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。示例1: 输入:A = 29 (或者0b11101), B = 15(或者0b01111) 输出:2分析: 二进制位操作,先对两个数的二进制进行异或操作,按位相同为0, 不同为1,得到结果后统计1的个数,可以通过对异或结果右移分别与1进行按位与判断,相同则计数加1class Solution: def convertInteger(self, A: int, B: int) -> int: tm

2021-07-29 20:09:49 117

原创 面试题 05.02. 二进制数转字符串

题目二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。示例1: 输入:0.625 输出:"0.101"示例2: 输入:0.1 输出:"ERROR" 提示:0.1无法被二进制准确表示分析: 小数表示成二进制,将该数字乘以2,取出整数部分作为二进制表示的第1位;然后再将小数部分乘以2,将得到的整数部分作为二进制表示的第2位;以此类推,直到小数部分为0,对于大于1的小数其

2021-07-28 20:42:54 209

原创 面试题 04.08. 首个共同祖先

题目设计并实现一个算法,找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意:这不一定是二叉搜索树。例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] 3 / \ 5 1 / \ / \6 2 0 8 / \ 7 4示例1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5 和节点 1 的最近公共祖

2021-07-28 14:02:09 137

原创 面试题 04.06. 后继者

题目设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。示例1:输入: root = [2,1,3], p = 1 2 / \1 3输出: 2示例2:输入: root = [5,3,6,2,4,null,null,1], p = 6 5 / \ 3 6 / \ 2 4 / 1输出: null分析: 二叉搜索树的中序遍历,可以用递归或者非递

2021-07-26 21:39:01 28

原创 面试题 04.05. 合法二叉搜索树

题目实现一个函数,检查一棵二叉树是否为二叉搜索树。示例1:输入: 2 / \ 1 3输出: true示例2:输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 5 ,但是其右子节点值为 4 。分析: 首先理解二叉搜索树的条件,即对任意一个根节点,其左子树所有的值均小于根节点值,右子树所有节点的值均大于根节点的值。同时它的左右子

2021-07-26 19:47:23 93

原创 面试题 04.04. 检查平衡性

题目实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。示例1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3 3 / \4 4返回 false 。分析: 采用DFS

2021-07-23 13:56:24 44

原创 面试题 04.03. 特定深度节点链表

题目给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。示例:输入:[1,2,3,4,5,null,7,8] 1 / \ 2 3 / \ \ 4 5 7 / 8输出:[[1],[2,3],[4,5,7],[8]]分析: 广度优先搜索,层层递进# Definition for a binary t

2021-07-22 20:12:30 61

原创 面试题 04.02. 最小高度树

题目给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。示例给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 分析: 用递归的方法实现# Definition for a binary tree node.class Tr

2021-07-21 20:43:39 38

原创 面试题 03.05. 栈排序

题目栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek 返回 -1。示例1:输入:["SortedStack", "push", "push", "peek", "pop", "peek"][[], [1], [2], [], [], []] 输出:[null,null,null,1,null,2]分析: 每次插入的新元素

2021-07-19 20:54:16 114

原创 面试题 03.01. 三合一

题目三合一。描述如何只用一个数组来实现三个栈。你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。构造函数会传入一个stackSize参数,代表每个栈的大小。示例1:输入:["TripleInOne", "push", "push", "pop", "pop", "pop", "isEmpty"][[1], [0, 1], [0, 2], [0

2021-07-17 22:36:49 107

原创 面试题 03.04. 化栈为队

题目:实现一个MyQueue类,该类用两个栈来实现一个队列。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false说明:你只能使用标准的栈操作 – 也就是只有 push to top, peek/pop from top, size 和 is empty操作是合法的。你所使

2021-07-16 19:42:20 35

原创 面试题 03.02. 栈的最小值

题目:请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin(); --> 返回 -3.minStack.pop();minStack.top(); --

2021-07-15 21:09:06 195

原创 面试题 02.01. 移除重复节点

题目:编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3]分析: 设置一个list用来存储未出现的节点的值,遍历待移除节点的前驱结点,如果当前节点需要被移除,则当前节点的前驱节点直接指向后继节点class Solution: def removeDuplicateNodes(self, head: ListNode) -> ListNode: if head == None or

2021-07-15 20:37:57 57

原创 面试题 01.09. 字符串轮转

题目:字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。示例1:输入:s1 = "waterbottle", s2 = "erbottlewat"输出:True分析: 首先判断两个字符串长度是否相等,相等再将s1拼接一份s1,判断s2是否是s1的字串 def isFlipedString(self, s1: str, s2: str) -> bool: if len(s1

2021-07-14 20:55:24 111

原创 面试题 01.06. 字符串压缩

题目:字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:"aabcccccaaa" 输出:"a2b1c5a3"分析: 给定一个快慢指针,遍历到字符串尾部即可,时间复杂度和空间复杂度...

2021-07-14 20:28:00 82

原创 面试题 01.03. URL化

题目URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)示例1:输入:"Mr John Smith ", 13输出:"Mr%20John%20Smith"分析:遍历字符串,用数组存储每一个字符,是空格就存储“%20”,最后拼接起来就行,当然,用replace直接替换最直接,但是失去了出题的意义class Solution: def r

2021-07-14 19:49:06 35

原创 面试题 01.02. 判定是否互为字符重排

题目给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例 1:输入: s1 = "abc", s2 = "bca"输出: true 分析: 字符如果限制在ASCII码范围,对每一个字符进行计数,比较两个字符串的计数情况即可方法一:计数比较class Solution: def CheckPermutation(self, s1: str, s2: str) -> bool: s1_list = [0]*2

2021-07-12 18:43:49 73

原创 面试题 01.01. 判定字符是否唯一

题目实现一个算法,确定一个字符串 s 的所有字符是否全都不同。示例 1:输入: s = "leetcode"输出: false 示例2:输入: s = "abc"输出: true分析: 通过列表,set函数可以快速实现,时间复杂度O(n2)O(n^2)O(n2),如果字符限制在ASCII码范围,则O(n)O(n)O(n)即可实现方法一:创建一个列表,用来存储没有出现过的字符class Solution: def isUnique(self, astr: str) ->

2021-07-12 18:18:24 103

原创 面试题 02.08. 环路检测

题目给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。示例1:上图是有环链表,返回节点2示例2:无环链表,返回null分析: 采用快慢指针的方法,如果有环,则必定在环路内相遇假设相遇在k点,环的入口在p点,环的周长为l,此时slow指针走了k步,fast指针走了2k步,路程满足2k = k + n* l(即相当于fast以k点处为起点,饶了n圈,n>0)所以有k = n*l也就是slow指针走的k步是环周长的整数倍此时假设,slow指针从head节点出重新出发,s

2021-07-12 17:33:28 144

原创 面试题 02.07. 链表相交

题目给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注

2021-07-11 17:17:12 162 1

原创 面试题 02.06. 回文链表

题目编写一个函数,检查输入的链表是否是回文的。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true 分析: 判断单链表是否是回文链表,及链表的正序等于反序,最容易想到的一种方式是复制一份相同的链表,进行反转后逐节点比较方法一:复制链表进行反转比较class ListNode: def __init__(self, x): self.val = x self.next = No

2021-07-08 20:41:26 98 1

原创 单链表反转

题目描述: 给定一个单链表的head节点,要求对链表进行反转并返回反转之后的head节点例如:给定的链表为0—>1—>2—>3—>null, head节点为0,链表反转之后为3—>2—>1—>0—>null,返回节点3分析: 链表反转可以采用遍历或者递归的方法遍历法:class ListNode: def __init__(self, x): self.val = x self.next = Noneclas

2021-07-07 18:21:34 54 1

原创 ASTER: An Attentional Scene Text Recognizer with Flexible Rectification

1

2021-07-07 15:53:32 756 1

中英文语音数据集.docx

最全面的中英文语音数据集介绍(附加下载链接),包括LibriSpeech ASR corpus,TED-LIUM,THCHS-30,Aishell等

2019-12-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除