随笔分类 - 刷题笔记
保持每天刷题,记录笔记。
摘要:766. 托普利茨矩阵 如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。 给定一个 M x N 的矩阵,当且仅当它是托普利茨矩阵时返回True。 示例 1: 输入: matrix = [ [1,2,3,4], [5,1,2,3], [9,5,1,2] ] 输出:
阅读全文
摘要:697.数组的度 给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。 你的任务是找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。 示例 1: 输入: [1, 2, 2, 3, 1] 输出: 2 解释: 输入数组的度是2,因为元素1和2
阅读全文
摘要:565.数组嵌套 索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], ... }且遵守以下的规则。假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],
阅读全文
摘要:287.寻找重复数 给定一个包含n+1个整数的数组 nums,其数字都在1到n之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 输入: [1,3,4,2,2] 输出: 2 示例 2: 输入: [3,1,3,4,2] 输出: 3 说明:
阅读全文
摘要:566.重塑矩阵 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填
阅读全文
摘要:485.最大连续1的个数 给定一个二进制数组, 计算其中最大连续1的个数。 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组只包含 0 和1。 输入数组的长度是正整数,且不超过 10,000。 代码
阅读全文
摘要:283.移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 解法: 借助一个慢指针,该指针用于指
阅读全文
摘要:题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 实现 方法一: public boolean isPalindrome(int x) { if (x == 0){ return true; } int mid_res = 0; int give_x =
阅读全文
摘要:题目: 给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。 重复出现的子串要计算它们出现的次数。 示例: 输入: "00110011" 输出: 6 解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100
阅读全文
摘要:题目 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 输入:"abc" 输出:3 解释:三个回文子串: "a", "b", "c" 输入:"aaa" 输出:6 解释:6个回文子串: "a", "a"
阅读全文
摘要:题目: 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 分析: 需要注意的点是: 1、s中如果某个字符是多次出现
阅读全文
摘要:题目: 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。 示例: 输入: [1,3,2,2,5,2,3,7] 输出: 5 原因: 最长的和谐数组是:[3,2,2,2,3]. 分析: 首先要了解什么是子序列?
阅读全文
摘要:题目: 请根据每日气温列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用0来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1
阅读全文
摘要:Trie树的基本概念 Trie树又称为前缀树或者字典树,用于判断字符串是否存在或者是否具有某种字符串的前缀。Trie 的每个 Node 保存一个字符。用链表来描述的话,就是一个字符串就是一个链表。每个Node都保存了它的所有子节点。 Trie树的实现 本文通过链表来实现Trie树,基本的操作主要包括
阅读全文
摘要:题目: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度
阅读全文
摘要:题目描述: 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作 "一个一", 即 11。11 被读作 "两个一", 即 21。21 被读作"一个二" , "一个一", 即 1211 要求:
阅读全文
摘要:二叉树的遍历分为三种,即先序、中序、后序,这里的先中后都以根节点的访问顺序为基准,根据二叉树的结构特点,进行这三种遍历的方式可以采用递归的方式,也可以采用非递归的方式,采用递归的方式时三种遍历的程序只需改变访问根节点的顺序即可,十分的简单。非递归的方式,主要是借助于栈,最要的不同也是访问结点的顺序不
阅读全文
摘要:题目: 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 返回 true,
阅读全文
摘要:题目:路径总和 III 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数
阅读全文
摘要:题目: 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 分析: 翻转二叉树,核心就是交换左右子树,子树也有子树。这就是逻辑上的重复,所以采用递归的方式解决。 代码: public TreeNode in
阅读全文

浙公网安备 33010602011771号