![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
leetcode刷题
这里只记录自己第一次想出来的leetcode题
咖喱东东
程序员菜鸟
展开
-
leetcode387. 字符串中的第一个唯一字符
描述 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 示例: s = "leetcode" 返回 0 s = "loveleetcode" 返回 2 提示: 你可以假定该字符串只包含小写字母。 思路 Hash 代码 public class FirstUniqueCharacterInAString387 { public int firstUniqChar(String s) { int[] array = new int[26];原创 2020-08-01 09:25:50 · 114 阅读 · 0 评论 -
leetcode面试题 08.03. 魔术索引
描述 魔术索引。 在数组A[0...n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。 示例1: 输入:nums = [0, 2, 3, 4, 5] 输出:0 说明: 0下标的元素为0 示例2: 输入:nums = [1, 1, 1] 输出:1 提示: nums长度在[1, 1000000]之间 思路 遍历 代码 class Soluti原创 2020-07-31 08:46:48 · 219 阅读 · 0 评论 -
leetcode538. 把二叉搜索树转换为累加树
题目描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。 例如: 输入: 原始二叉搜索树: 5 / \ 2 13 输出: 转换为累加树: 18 / \ 20 13 思路 通过(右子树->根->左子树)进行遍历原创 2020-07-29 07:57:38 · 409 阅读 · 0 评论 -
leetcode96. 不同的二叉搜索树
题目描述 给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2原创 2020-07-15 09:01:07 · 125 阅读 · 0 评论 -
leetcode120. 三角形最小路径和
题目描述 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。 说明: 如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。 思路&am原创 2020-07-14 09:12:12 · 107 阅读 · 0 评论 -
leetcode350-两个数组的交集 II
题目描述 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9] 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的顺序。 思路 哈希表 代码 public int[] intersect(int[] nums1, int[] nums2) {原创 2020-07-13 09:11:32 · 129 阅读 · 0 评论 -
leetcode面试题 16.11.-跳水板
题目描述 你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。 返回的长度需要从小到大排列。 示例: 输入: shorter = 1 longer = 2 k = 3 输出: {3,4,5,6} 提示: 0 < shorter <= longer 0 <= k <= 100000 思路 首先想到遍历k,由于是从小到大排列,先让shorter为k个原创 2020-07-08 09:46:15 · 167 阅读 · 1 评论 -
leetcode2-两数相加
题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 思路 第一反应就是依次同时遍历这两个链表,期间注意进位,最原创 2020-07-07 07:45:14 · 115 阅读 · 0 评论 -
leetcode63-不同路径 II
题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 0 来表示。 说明:m 和 n 的值均不超过 100。 示例 1: 输入: [ [0,0,0], [0,1,0], [0,0,0] ] 输出: 2 解释: 3x3 网格的正中间有一个障碍物。原创 2020-07-06 08:56:37 · 128 阅读 · 0 评论