刷题笔记
sxiaocaicai
这个作者很懒,什么都没留下…
展开
-
leetcode刷题--字符串
day19--题目描述解答方法题目描述解答方法使用栈或者双端队列将字符串以/分割划分为各个小的字符串之后,存入栈或者队列中,遇见.不用管不用入队,遇见…将栈尾或队尾元素出队,然后从头开始拼接字符串即可。其实Linux的目录层级采用的就是栈。代码实现:class Solution { public String simplifyPath(String path) { String[] strs=path.split("/"); StringBuilder原创 2021-10-12 10:56:40 · 123 阅读 · 0 评论 -
leetcode刷题--字符串
day15--电话号码的字母组合题目描述解答题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “2”输出:[“a”,“b”,“c”]解答本题原创 2021-10-07 11:30:32 · 180 阅读 · 0 评论 -
leetcode刷题--字符串
day8--无重复字符的最长字符串题目描述解答题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解答可使用“滑动窗口”方法来实现,设置左右两个指针,左指针固定时,右指针移动,直至出现重复元素,然后将左指针向右移动一下,开始下一个子字符串的判断。为了判断是否有重复元素,普遍使用hashset(哈希表),每当左指针向右移动时,将从哈希表中移除一个原创 2021-09-24 21:24:53 · 153 阅读 · 0 评论 -
leetcode刷题--数组
day7--在排序数组中查找元素的第一个和最后一个位置题目描述解答题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。解答由于是升序排列的数组,所以可以考虑使用二分法实现,也就是寻找第一个出现目标值的位置和第一个出现大于目标值的数的位置减一。定义 binarySearch(nums, target, lower) 表示在 \textit{nums}nums 数组中二分原创 2021-09-22 19:50:47 · 172 阅读 · 0 评论 -
leetcode刷题--数组
day5--下一个排列题目描述解法题目描述实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。比如:输入:nums = [1,2,3]输出:[1,3,2]解法把所有数字看成一个整数,将所有数字全部排列,找出该整数的下一个数字排列。比如:13456这几个数字,所有排列成的整数有:13456134651354原创 2021-09-15 14:40:22 · 75 阅读 · 0 评论 -
leetcode刷题--数组
Day4--四数之和题目描述解法题目描述给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] :1)0 <= a, b, c, d < n2)a、b、c 和 d 互不相同3)nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。解法使用排序加双指针的方法对数组进行排原创 2021-09-14 10:34:46 · 96 阅读 · 0 评论 -
2021-09-09
leetcode刷题--数组day1题目描述解法day1题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。解法1、双指针法:数组a左右两端各设置一个指针,分别为i,j,计算所围成的区域面积(area=min(a.[l],a[r])*(r-l))移动时要移动值偏小的那个指针,因为移动指向值大的原创 2021-09-09 16:51:40 · 69 阅读 · 0 评论 -
leetcode刷题笔记
leetcode刷题笔记——01730. 统计不同回文子序列给定一个字符串 S,找出 S 中不同的非空回文子序列个数,并返回该数字与 10^9 + 7 的模。通过从 S 中删除 0 个或多个字符来获得子序列。如果一个字符序列与它反转后的字符序列一致,那么它是回文字符序列。如果对于某个 i,A_i != B_i,那么 A_1, A_2, … 和 B_1, B_2, … 这两个字符序列是不同的。字符串 S 的长度将在[1, 1000]范围内。每个字符 S[i] 将会是集合 {‘a’, ‘b’,原创 2020-12-07 16:33:05 · 199 阅读 · 0 评论