leetcode
-墨倾池-
这个作者很懒,什么都没留下…
展开
-
leetcode:两数之和
题目Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.You may assume that each input would have exactly one solution, and you may not use the same element twice.You can return the an原创 2021-06-21 22:14:08 · 174 阅读 · 0 评论 -
leetcode:删除有序数组中的重复项
题目Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place such that each unique element appears only once. The relative order of the elements should be kept the same.Since it is impossible to change the length of the ar原创 2021-06-22 22:02:40 · 175 阅读 · 0 评论 -
leetcode:移除元素
题目给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度原创 2021-06-22 22:31:20 · 77 阅读 · 0 评论 -
leetcode:搜索插入位置
题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1题解 // 用二分查找 public static int searchInsert(int[] nums, int target) { int left = 0; int right =原创 2021-06-23 23:52:40 · 73 阅读 · 0 评论 -
leetcode:最大子序和
题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1javapublic static int maxSubArray(int[] nums) { // 设f(i)为以i为结束点数组的连续数组最大和,那么f(i+1) = Math原创 2021-06-25 00:04:26 · 58 阅读 · 0 评论 -
leetcode:合并有序数组
题目给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1 = [1], m原创 2021-06-28 22:57:28 · 139 阅读 · 0 评论 -
leetcode:将有序数组转换为二叉搜索树
题目给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。示例 1:输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:示例 2:输入:nums = [1,3]输出:[3,1]解释:[1,3] 和 [3,1] 都是高度平衡二叉搜索树。题解原创 2021-06-28 23:53:45 · 299 阅读 · 1 评论 -
leetcode: 杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。题目在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]题解public List<List<Integer>> generate(int numRows) { List<List<Integer>> result = new ArrayList&原创 2021-06-29 23:40:51 · 97 阅读 · 0 评论 -
leetcode:买卖股票的最佳时机
题目给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7原创 2021-07-01 22:53:25 · 86 阅读 · 0 评论 -
leetcode:买卖股票的最佳时机 II
题目给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 =原创 2021-07-01 23:09:00 · 87 阅读 · 0 评论 -
leetcode:相同的树
题目给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。题解解体策略:递归 public boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) { return true; } if (p == null || q == null)原创 2021-07-14 23:04:19 · 171 阅读 · 0 评论 -
leetcode:DFS & BFS求解二叉树最小深度
题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。深度优先算法 DFS // 叶子节点是指没有子节点的节点。 这句话很重要 public int minDepth_dfs(TreeNode root) { if (root == null) { return 0; } if (root.left == null &&原创 2021-07-26 16:07:20 · 81 阅读 · 0 评论