![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣
学习简单的算法
编程的机械狗
这个作者很懒,什么都没留下…
展开
-
https://leetcode-cn.com/problems/linked-list-cycle-i 环形链表
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle-ii思路双指针,快慢指针如果能相遇,说明一定有环原创 2020-11-11 22:05:11 · 653 阅读 · 0 评论 -
160 https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 相交链表
编写一个程序,找到两个单链表相交的起始节点。https://leetcode-cn.com/problems/intersection-of-two-linked-lists/思路两个指针同时从两个链表的head开始移动,由此计算出两个链表的长度差。然后让较长的链表减去这个差值,再设置两个指针,边比较边移动class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {原创 2020-11-10 22:18:13 · 86 阅读 · 0 评论 -
768. 最多能完成排序的块 II (单调栈)
最多能完成排序的块 IIarr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。我们最多能将数组分成多少块?示例 1:输入: arr = [5,4,3,2,1]输出: 1解释:将数组分成2块或者更多块,都无法得到所需的结果。题目来源https://leetcode-cn.com/problems/max-chunks-to-make-sorted-ii/思路找到最多能完成排序的块,就是要.原创 2020-11-06 21:45:41 · 181 阅读 · 0 评论 -
C++用栈实现队列
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和原创 2020-11-05 20:40:23 · 441 阅读 · 0 评论 -
leetcode字符串解码--Cpp
给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:s = “3[a]2[bc]”输出:“aaabcbc”示例 2:输入:s = “原创 2020-11-04 21:13:27 · 93 阅读 · 0 评论 -
设计一个支持增量操作的栈 数组实现
请你设计一个支持下述操作的栈。实现自定义栈类 CustomStack :CustomStack(int maxSize):用 maxSize 初始化对象,maxSize 是栈中最多能容纳的元素数量,栈在增长到 maxSize 之后则不支持 push 操作。void push(int x):如果栈还未增长到 maxSize ,就将 x 添加到栈顶。int pop():弹出栈顶元素,并返回栈顶的值,或栈为空时返回 -1 。void inc(int k, int val):栈底的 k 个元素的值都增加原创 2020-11-03 21:28:59 · 61 阅读 · 0 评论 -
字符的最短距离---cpp
题目描述给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。输入: S = “loveleetcode”, C = ‘e’输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shortest-distance-to-a-character思路1、类似双指针,先找到第一个相遇位置的下表,2、开始比较,计原创 2020-11-02 20:27:24 · 80 阅读 · 0 评论 -
leetcode 第66题 加一 https://leetcode-cn.com/problems/plus-one。
题目描述:定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/plus-one。思路1、最后一位开始 遇 9 进 1,当前位值为 0,进入下次遍历2、如果加一小于 10,退出循环3、如果跳出循环,说明首位有进位,追加1时间复杂度O(n) n为循环的次数空间复杂度O原创 2020-11-01 21:30:38 · 693 阅读 · 0 评论