LeetCode每日一题
文章平均质量分 51
lizju
求关注
展开
-
到达终点数字
第 i 次移动(从 i == 1 开始,到 i == numMoves ),在选择的方向上走 i 步。给定整数 target ,返回 到达目标所需的 最小 移动次数(即最小 numMoves )。链接:https://leetcode.cn/problems/reach-a-number。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。在一根无限长的数轴上,你站在0的位置。终点在target的位置。每次你可以选择向左或向右移动。来源:力扣(LeetCode)原创 2022-11-04 18:04:44 · 990 阅读 · 2 评论 -
[LeetCode] 419. 甲板上的战舰
题目给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 ‘X’ 或者是一个空位 ‘.’ ,返回在甲板 board 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k(1 行,k 列)或 k x 1(k 行,1 列)的形状建造,其中 k 可以是任意大小。两艘战舰之间至少有一个水平或垂直的空位分隔 (即没有相邻的战舰)。思路就是数有几个船, 就是数就完了。代码class Solution: def原创 2021-12-18 13:34:00 · 3551 阅读 · 0 评论 -
[Leetcode] 1610. 可见点的最大数目
给你一个点数组 points 和一个表示角度的整数 angleangleangle ,你的位置是 locationlocationlocation ,其中 location=[posx,posy]location = [posx, posy]location=[posx,posy] 且 points[i]=[xi,yi]points[i] = [xi, yi]points[i]=[xi,yi] 都表示 X−YX-YX−Y 平面上的整数坐标。最开始,你面向东方进行观测。你 不能 进行移动改变位置,但可以通过原创 2021-12-16 13:25:23 · 3878 阅读 · 0 评论 -
117. 填充每个节点的下一个右侧节点指针 II
题目给定一个二叉树struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。使用额外空间的扁平映射法class Solution: def connect(self, root: 'Node') -> 'Node':原创 2020-09-28 18:25:26 · 89 阅读 · 0 评论 -
113. 路径总和 II
题目给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \7 2 5 1返回:[ [5,4,11,2], [5,8,4,5]]力扣(LeetCode代码# Definition for a binary tree n原创 2020-09-26 11:26:17 · 113 阅读 · 0 评论 -
106. 从中序与后序遍历序列构造二叉树
题目根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7力扣(LeetCode)代码# Definition for a binary tree node.# class TreeNode:# def __init__(sel原创 2020-09-25 12:42:26 · 116 阅读 · 0 评论 -
501. 二叉搜索树中的众数
描述给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定 BST [1,null,2,2], 1 \ 2 / 2返回[2].提示:如果众数超过1个,不需考虑输出顺序进阶:你可以不使用额外的空间吗?(假设由递归产生的隐式调用栈的开销不被计算在内)力扣(LeetC原创 2020-09-24 14:42:32 · 86 阅读 · 0 评论 -
617. 合并二叉树
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入:Tree 1 Tree 2 1 2原创 2020-09-23 15:23:26 · 124 阅读 · 0 评论 -
538. 把二叉搜索树转换为累加树
给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。解记录所有点的值排序更新# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right原创 2020-09-21 08:22:05 · 58 阅读 · 0 评论 -
39. 组合总和
描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。解class Solution: def combinationSum(self, A: List[int], target: int) -> List[List[int]]: def f(原创 2020-09-20 20:49:24 · 70 阅读 · 0 评论 -
78. 子集
描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。解class Solution: def subsets(self, nums: List[int]) -> List[List[int]]: def f(i, A): if i == len(nums): yield A return for x i原创 2020-09-20 20:36:56 · 68 阅读 · 0 评论 -
[Leetcode/c++] 37解数独
题目编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 ‘.’ 表示。DFS经典问题, 一个个试着去填, 能填完就是对的。代码CPP#include <bits/stdc++.h>#include <unordered_map>#include <unordered_set&g原创 2020-09-15 11:21:07 · 108 阅读 · 0 评论 -
[Leetcode/每日一题] 647. 回文子串
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。class Solution: def countSubstrings(self, s: str) -> int: dp = [[False for _ in range(len(s))] for _ in range(len(s))] res = 0 for length i.原创 2020-08-19 01:23:56 · 197 阅读 · 0 评论 -
167. 两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 index1 = 1, in原创 2020-07-20 12:51:17 · 107 阅读 · 0 评论