标签:算法 - Touale Cula's Blog

题目内容一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。   示例 1: 12输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1] 示例 2: 12输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2] 限制: 12 <= num...

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 12345678参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3 示例 1: 12输入: [1,6,3,2,5]输出: false 示例 2: 12输入: [1,3,2,6,5]输出: true 提示:...

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

题目内容输入一个字符串,打印出该字符串中字符的所有排列。   你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。   示例: 12输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"] 限制: ...

题目在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?   示例 1: 12345678输入: [  [1,3,1],  [1,5,1],  [4,2,1]]输出: 12解释: 路径 1→3→5→2→...

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

题目内容输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。   示例 1: 12输入: [10,2]输出: "102" 示例 2: 12输入: [3,30,34,5,9]输出: "3033459" 提示: 10 < nums.length <= 100 解法一:暴力法1234567891011...

题目我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。   示例: 123输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 说明:   121 是丑数。n 不超过1690。 解法一:动态规划123456789101112131415161718class...

题目请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。   示例 1: 123输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 123输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其...

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 例如: 12345678910111213给定的树 A:     3    / \   4   5  / \ 1   2给定的树 B:   4   / 1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。 示例 1: 12输入:A = ...