![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
Melody1211
这个作者很懒,什么都没留下…
展开
-
最佳买卖股票时机含冷冻期
309. 最佳买卖股票时机含冷冻期 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。 示例: 输入: [1,2,3,0,2] 输出: 3 解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出] 这道题可以用dp的方法求解。因为含有冷冻期,原创 2020-12-01 22:49:40 · 163 阅读 · 0 评论 -
下一个排列
题目 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1 思路 这一题比较有意思,主要需要观察数字变化的特点。多个数字的排列,其中最小的排列为从左到右数字递增,最大的排列为从左到右数字递减。知道了这个特点,这一题就好思考了原创 2020-09-13 18:09:23 · 93 阅读 · 0 评论 -
删除链表的倒数第N个节点——双指针
题目 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 思路 用双指针就可以一趟扫描实现链表节点的删除,但是需要注意对于第一个节点的删除,在实现过程中通过dummyHead来保证对于第一个节点的删除与对其它节点的删除操作相同,这样就保证了对第原创 2020-09-08 15:22:44 · 98 阅读 · 0 评论 -
电话号码的字母组合——回溯法
题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 思路 通过回溯法查找全部可能的组合。 代码 class Solution { public: vector<string>原创 2020-09-08 11:10:33 · 182 阅读 · 0 评论 -
盛最多水的容器——双指针
题目 给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 示例: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 思路 想要容纳原创 2020-09-03 12:24:21 · 108 阅读 · 0 评论 -
正则表达式匹配——动态规划
题目 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。 示例 1: 输入: s = "aa" p = "a" 输出: false 解释: "a" 无法匹配 "aa" 整个字符串。 示例 2: 输入: s =原创 2020-09-02 20:14:24 · 285 阅读 · 0 评论 -
Leetcode整数反转
题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231−1][−2^{31}, 2^{31} − 1][−231,231−1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 思路 整数反转部分比较简单。主要需要注意的是题中对边界条件的要求,需要判断原创 2020-09-02 11:09:46 · 88 阅读 · 0 评论 -
Longest Palindromic Substring——Dynamic Programming
题目 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example 1: Input: "babad" Output: "bab" Note: "aba" is also a valid answer. Example 2: Input: "cbbd" Output: "bb" 思路 动态规划,若原回文子字符串的首尾相邻原创 2020-08-30 17:38:05 · 92 阅读 · 0 评论 -
Median of Two Sorted Arrays——Binary Search
寻找两个有序数组的中位数 题目 Given two sorted arrays nums1 and nums2 of size m and n respectively. Return the median of the two sorted arrays. Follow up: The overall run time complexity should be O(log (m+n)). Example 1: Input: nums1 = [1,3], nums2 = [2] Output: 2.0000原创 2020-08-30 16:48:54 · 85 阅读 · 0 评论 -
Longest Substring Without Repeating Characters——Sliding Window, Hash Table
题目 Given a string, find the length of the longest substring without repeating characters. Example 1: Input: "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2: Input: "bbbbb" Output: 1 Explanation: The answer is "b",原创 2020-08-30 12:37:37 · 82 阅读 · 0 评论 -
Add Two Numbers——Linked List
题目 You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. You may assume the two numbers do原创 2020-08-29 18:08:40 · 89 阅读 · 0 评论 -
Two Sum——Hash Table
题目 Given an array of integers nums and and integer target, return the 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原创 2020-08-29 16:56:07 · 115 阅读 · 0 评论