franki Blog

make a small progress every day

leetcode 557题

leetcode 557 反转字符串中的单词 III 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例1 输入:s = "Let's take LeetCode contest" 输出:"s'teL ekat edoCteeL tsetnoc" 示例2 输入: s = "God Ding" 输出:"doG gniD" 思路 ...

线段树

线段树实现及应用 线段树的定义,本质是一颗平衡二叉搜索树,也就是每个节点的左右节点高度不超过1,并且左节点的值小于根节点,根节点的值小于右节点 线段树的操作包括:创建线段树、搜索、查询 下标 如果下标从0开始,那么左节点就是 2 * i + 1,右节点就是 2 * i + 2,父节点就是 (i - 1) / 2 如果小标从1开始,那么左节点就是 2 * i,右节点就是 2 * i ...

leetcode 541题

leetcode 541 反转字符串 II 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 示例1 输入:s = "abcdefg", k = 2 输出:"bacdfeg" ...

leetcode 532题

leetcode 532 数组中的 k-diff 数对 给你一个整数数组 nums 和一个整数 k,请你在数组中找出 不同的 k-diff 数对,并返回不同的 k-diff 数对 的数目。 k-diff 数对定义为一个整数对 (nums[i], nums[j]) ,并满足下述全部条件: 0 <= i, j < nums.length i != j nums[i] - num...

leetcode 526题

leetcode 526 优美的排列 假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm(下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 : perm[i] 能够被 i 整除 i 能够被 perm[i] 整除 给你一个整数 n ,返回可以构造的 优美排列 的 数量 。 示例1 输入:n = 2 输出:2 解释: 第 1 个优美的排列是 [...

leetcode 524题

leetcode 524 通过删除字母匹配到字典里最长单词 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 示例1 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。 如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。 ...

leetcode 515题

leetcode 515 找树左下角的值 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 示例1 输入: root = [1,3,2,5,3,null,9] 输出: [1,3,9] 示例2 输入: root = [1,2,3] 输出: [1,3] 思路 同样使用 bfs 的思想,把每一层的最大值用 map 记录,tree 遍历完毕之后,再去获取所有...

leetcode 513题

leetcode 513 找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例1 输入: root = [2,1,3] 输出: 1 示例2 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 思路 使用 dfs 便可得到结果 代码 /** * @param ...

leetcode 509题

leetcode 509 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给定 n ,请计算 F(n) 。 示例1 输入:n = 2 输出:1 解释:F(2) ...

leetcode 506题

leetcode 506 完美数 对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。 给定一个 整数 n, 如果是完美数,返回 true;否则返回 false。 示例1 输入:num = 28 输出:true 解释:28 = 1 + 2 + 4 + 7 + 14 1, 2, 4, 7, 和 14 是 28 的所有正因子。 示例2 输入:n...