随笔分类 - LeetCode
摘要:问题 请实现一个函数用来匹配包含'. '和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"和"ab*a"均不匹配。
阅读全文
摘要:问题 给你一根长度为n的绳子,请把绳子剪成整数长度的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1]...k[m-1] 。请问k[0]*k[1]*...*k[m-1]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘
阅读全文
摘要:问题 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。具体定义如下: 解答1:递归 class Solution { public: bool isSymmetric(TreeNode* root) { if (!root) return true; r
阅读全文
摘要:问题 给你一个整数数组 nums,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于limit 。 如果不存在满足条件的子数组,则返回0。 示例 输入: nums = [10,1,2,4,7,2], limit = 5 输出: 4 解
阅读全文
摘要:问题 给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。 提示: nums.length 在1到 50,000 区间范围内; nums[i] 是一个在 0 到
阅读全文
摘要:问题 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构,即A中有出现和B相同的结构和节点值。 例如: 给定的树A与树B: 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。 示例 输入: A = [1,2,3], B = [3,1]
阅读全文
摘要:问题 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例 输入: 1->2->4, 1->3->4 输出: 1->1->2->3->4->4 解答1:迭代 class Solution { public: ListNode* mergeTwoLists(ListNode
阅读全文
摘要:问题 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 Definition for singly-linked list. struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(N
阅读全文
摘要:问题 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 2 个节点是值为 4 的节点。 示例 给定一个链表: 1->2->3->4
阅读全文
摘要:问题 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 字符串面试题(三)— 把一个字符串的大写字母放到字符串的后面升级版待补充。 示例 输入: nums = [1,2,3,4] 输出: [1,3,2,4] 注: [3,1,2,4]
阅读全文
摘要:问题 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。题目保证链表中节点的值互不相同。返回删除后的链表的头节点。 示例 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表
阅读全文
摘要:问题 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 示例 输入: 2.10000, 3 输出: 9.26100 输入: 2.00000, -2 输出: 0.25000 解释: 2-2
阅读全文
摘要:问题 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 输入: 00000000000000000000000000001011 输出: 3 解释: 输入的二进制串
阅读全文
摘要:问题 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3
阅读全文
摘要:问题 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用
阅读全文
摘要:问题 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 输入:[3,4,5,1,2] 输出:1 输入:[2,2,2,0,1
阅读全文
摘要:问题 假设按照升序排序的数组在预先未知的某个点上进行了旋转。例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] 。 请找出其中最小的元素。 示例 输入:nums = [3,4,5,1,2] 输出:1 输入:nums = [4,5,6,7,0,1,2] 输出:0 解答
阅读全文
摘要:问题 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两
阅读全文
摘要:问题 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 输入: ["CQueue","appendTail","dele
阅读全文
摘要:问题 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 // Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *
阅读全文

浙公网安备 33010602011771号