随笔分类 - LeetCode
摘要:问题 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。 示例 输入: nums = [2,7,11,15], target = 9 输出: [2,7] 或者 [7,2] 解答 class Solution { public:
阅读全文
摘要:问题 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 输入: nums = [1,2,10,4,1,4,3,3] 输出: [2,10] 或 [10,2] 解答 class Solution {
阅读全文
摘要:问题 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 解答 class Solution { public: bool isBalanced(TreeNode* root) { recur(root); return
阅读全文
摘要:问题 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 解答1:前序遍历+回溯 class Solution { public: int maxDepth(TreeNode* root) { if (!root) ret
阅读全文
摘要:问题 给定一棵二叉搜索树,请找出其中第k大的节点。 解答1:递归 class Solution { public: int kthLargest(TreeNode* root, int k) { if (!root || flag) return res; // 使用flag跳出递归 kthLarg
阅读全文
摘要:问题 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 输入: [0,1,3] 输出: 2 解答 class Solution { public: int missingNum
阅读全文
摘要:问题 统计一个数字在排序数组中出现的次数。 示例 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 解答 class Solution { public: int searc
阅读全文
摘要:问题 输入两个链表,找出它们的第一个公共节点。 示例 解答 class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode *curA = headA, *curB
阅读全文
摘要:问题 给定一个整数数组nums。区间和S(i, j)表示在nums中,位置从i到j的元素之和,包含i和j,(i ≤ j)。 请你以下标i(0 <= i <= nums.length )为起点,元素个数逐次递增,计算子数组内的元素和。 当元素和落在范围[lower, upper](包含lower和up
阅读全文
摘要:问题 给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。 你需要返回给定数组中的重要翻转对的数量。 示例 输入: [1,3,2,3,1] 输出: 2 解答 class Solution { public: int re
阅读全文
摘要:问题 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 输入: [7,5,6,4] 输出: 5 解答 class Solution { public: int reversePairs(vector<int>& num
阅读全文
摘要:问题 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例 s = "abaccdeff" 返回 "b" 解答1:一次遍历 class Solution { public: char firstUniqChar(string s) { int left
阅读全文
摘要:问题 我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 解答 class Solution { pub
阅读全文
摘要:问题 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 解答 class Solution { public: int lengthOfLongestSu
阅读全文
摘要:问题 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物? 示例 输入: [ [1,3,1], [1,5,1
阅读全文
摘要:问题 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 示例 输入: 12258 输出: 5 解释: 12258有5种
阅读全文
摘要:问题 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数; 拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0。 示例 输入: [3,30,34,5,9] 输出: "3033459"
阅读全文
摘要:问题 数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。 请写一个函数,求任意第n位对应的数字。 示例 输入: n = 11 输出: 0 解答 class Solution { publi
阅读全文
摘要:问题 输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。 例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。 示例 输入: n = 12 输出: 5 解答 class Solution { public: int countDigitOne(i
阅读全文
摘要:问题 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 解答 class Solut
阅读全文

浙公网安备 33010602011771号