Leetcode刷题随笔
Dunponsion
这个作者很懒,什么都没留下…
展开
-
Java刷题随笔---071. 简化路径
71. 简化路径 - 力扣(LeetCode) (leetcode-cn.com)难度:中等题目描述:给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,’//’)都被视为单> 个斜杠 ‘/’ 。 对于此问题,原创 2022-01-06 15:43:28 · 216 阅读 · 0 评论 -
Java刷题随笔---1154. 一年中的第几天
1154. 一年中的第几天 - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。请你计算并返回该日期是当年的第几天。通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。分析此题较为基础, 首先使用date.substring()方法计算出date的年月日 之后转换成原创 2021-12-21 10:45:27 · 294 阅读 · 0 评论 -
Java刷题随笔---475.供热器
475. 供暖器 - 力扣(LeetCode) (leetcode-cn.com)难度:中等题目描述:冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。在加热器的加热半径范围内的每个房屋都可以获得供暖。现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。说明:所有供暖器都遵循你的半径标准,加热的半径也一样。分析排序+双指针 此题使用双指针,为每一个房子位置寻找最原创 2021-12-21 10:05:11 · 237 阅读 · 0 评论 -
Java刷题随笔---260.只出现一次的数字Ⅲ
260. 只出现一次的数字 III - 力扣(LeetCode) (leetcode-cn.com)难度:中等题目描述:给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?分析1- 这类题可以简单的使用HashMap进行存储,key值为数组元素,value值为元素出现的次数,最后遍历一遍,输出value为1的key即可。2- 此题进原创 2021-12-21 10:04:53 · 169 阅读 · 0 评论 -
Java刷题随笔---1518.换酒问题
1518. 换酒问题 - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。分析很简单的题,喝一瓶numBottles--,获得一个空瓶cricle++喝的酒result++当cricle == numExchange,也就是空瓶能换一瓶酒时numBottles++原创 2021-12-21 10:04:36 · 221 阅读 · 0 评论 -
Java刷题随笔---剑指-Offer-35.复杂链表的复制(递归)
LeetCode连接(https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof/)难度:中等题目描述:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13原创 2021-12-21 10:04:16 · 110 阅读 · 0 评论 -
Java刷题随笔---219.存在重复元素Ⅱ
219. 存在重复元素 II - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。分析此题目的为寻找k区间的nums数组的重复元素,例如: nums = [1,2,3,1] k=3 nums[0] == nums[4] --->原创 2021-12-21 09:58:45 · 207 阅读 · 0 评论 -
Java刷题随笔---217--存在重复元素
217. 存在重复元素 - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。分析1- 创建一个哈希表,将数组中的元素添加到哈希表中, 此处使用set.add()方法的原因是方法返回值为布尔类型并且官方对于返回值这样解释 true if this set did not already contain the spe原创 2021-12-21 09:58:33 · 113 阅读 · 0 评论 -
Java刷题随笔---171.Excel-表列序号
LeetCode链接难度:简单题目描述:给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...解题class Solution { public int titleToNumber(String columnTitle) { char[] c = col原创 2021-12-21 09:58:22 · 74 阅读 · 0 评论 -
Java刷题随笔---205.同构字符串
LeetCode链接难度:简单题目描述:给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。分析本题主要判断两个字符串s和t是否为同构,同构简单的解释一下就是两个字符串的组成形式是否一致,例如s=egg,t原创 2021-12-21 09:58:09 · 165 阅读 · 0 评论 -
Java刷题随笔---168.Excel表列名称
LeetCode链接难度:简单题目描述:给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...分析本题本质上为26进制的转换:因为本题从A开始代表数字1,但Z为止代表数字26,这是一个位置上的元素表示。每当当前位置的元素超过26,也即Z的表示数字时,都会向前进一位,变成AA来表示下一个数字,所以说本题的实质为2原创 2021-12-20 20:21:12 · 154 阅读 · 0 评论 -
Java刷题随笔---167.两数之和Ⅱ
167. 两数之和 II - 输入有序数组 - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:给定一个已按照 非递减顺序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.原创 2021-12-20 20:20:16 · 308 阅读 · 0 评论 -
Java刷题随笔---137.只出现一次的数字Ⅱ
137. 只出现一次的数字 II - 力扣(LeetCode) (leetcode-cn.com)难度:中等题目描述:给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。分析:分析:1- 这类题可以简单的使用HashMap进行存储,key值为数组元素,value值为元素出现的次数,最后遍历一遍,输出value为1的key即可。2- 进阶方法可以使用位数统计的方法进行解题。首先数组中的数都是int类型的数,转换成二进制原创 2021-12-20 20:19:36 · 306 阅读 · 0 评论 -
Java刷题随笔---136.只出现一次的数字
136. 只出现一次的数字 - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?异或性质任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=aa \oplus 0=aa⊕0=a 。任何数和其自身做异或运算,结果是 0,即 a⊕a=0a \oplus a=0a⊕a=0 。异或运算满足原创 2021-12-20 20:18:18 · 84 阅读 · 0 评论 -
Java刷题随笔---122.买卖股票的最 佳时机Ⅱ
122. 买卖股票的最佳时机 II - 力扣(LeetCode) (leetcode-cn.com)难度:中等题目描述:给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。分析此题是121题的进阶, 121题实质计算的是一次交易的最大利润,而122题不限制交易次数,计算的是总体最大利润原创 2021-12-20 16:24:44 · 411 阅读 · 0 评论 -
Java刷题随笔---121.买卖股票的最 佳时机
121. 买卖股票的最佳时机 - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。类型一样的题股票问题系列通解(转载翻译) - 力扣(LeetCo原创 2021-12-20 16:24:06 · 255 阅读 · 0 评论 -
Java刷题随笔---119.杨辉三角Ⅱ
119. 杨辉三角 II - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。Java刷题随笔—118. 杨辉三角杨辉三角性质每行数字左右对称,由 1 开始逐渐变大再变小,并最终回到 1。第 n 行(从 0 开始编号)的数字有 n+1 项,前 n 行共有 n(n+1)2\frac{n(n+1)}{2}2n(n+1) 个数。原创 2021-12-20 16:17:31 · 341 阅读 · 0 评论 -
Java刷题随笔---001.两数之和
1. 两数之和 - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。分析使用map存储key为nums[index],value为index。时间复杂度为O(n),空间复原创 2021-12-20 16:17:01 · 89 阅读 · 0 评论 -
Java刷题随笔---066.加一
LeetCode链接难度:简单题目描述:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。分析:本题主要分为两种情况:1- 数组中没有9 ---> 则在最后一位直接加一,例如:[1,2,3,4] ---> [1,2,3,5]2- 数组中有9,同时也分为两种情况: 2.1- 数组中的9并不会导致最后数组长度增加,例如: [1,2,3,原创 2021-12-20 16:16:18 · 138 阅读 · 0 评论 -
Java刷题随笔---118.杨辉三角
118. 杨辉三角 - 力扣(LeetCode) (leetcode-cn.com)难度:简单题目描述:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。分析杨辉三角近似看成如下所示的例图:** ** * *所以杨辉三角可以表示为:11 11 2 1设置两个指针一个为行指针(row),一个为列指针(column)杨辉三角中的元素可以分为两种情况:1- 当column==0或column==row原创 2021-12-20 15:51:27 · 570 阅读 · 0 评论