随笔分类 - 算法题解
摘要:题目 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:["h"
阅读全文
摘要:题目 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例网站上看吧。 注意: 合并必须从两个树的根节
阅读全文
摘要:题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 ⇐ 链表长度 ⇐ 10000 思路 倒置输出链表。这种倒置输出一般都可以递归的输出。如果题目可以占用额外空间,还可以先顺序一遍保存,然后倒序输
阅读全文
摘要:题目 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 ⇐ 的长度 ⇐ 10000 思路 高级语言可以直接replace。如果用c的话,最简单的方法就是指到空格
阅读全文
摘要:题目 在一个的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12,
阅读全文
摘要:题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为
阅读全文
摘要:题目 给定一个二叉树,返回它的中序遍历。 思路 递归很简单,这里要求非递归,其实也不难(由于没写过写了好久= =)。 大致思路就是,左儿子不空就一直走左儿子,空了就走右儿子。然后重复上述。很显然,递归转非递归肯定是要用到栈的(因为要回溯,后遍历的节点是先输出的)。 这里有些实现细节: 用一个指针一直
阅读全文
摘要:题目 给定一个非负整数。对于范围中的每个数字 ,计算其二进制数中的 的数目并将它们作为数组返回。 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: 5 输出: [0,1,1,2,1,2] 思路 动态规划。题目要求
阅读全文
摘要:题目 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 输入:n = 3 输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ] 思路 动态规划。假设我们已知时的所有括
阅读全文