Leetcode
leetcode学习记录
i加加
定个小目标,每周末一篇博客。
展开
-
(两百八十四)leetcode-排序-上升下降字符串
题目给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法...原创 2020-12-27 23:31:43 · 270 阅读 · 0 评论 -
(两百三十九)leetcode-堆 最后一块石头的重量
1.题目有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为x 和y,且x <= y。那么粉碎的可能结果如下:如果x == y,那么两块石头都会被完全粉碎;如果x != y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有...原创 2020-04-25 10:49:24 · 269 阅读 · 0 评论 -
(两百三十五)leetcode 数据流中的第K大元素
1.题目设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的KthLargest类需要一个同时接收整数k 和整数数组nums的构造器,它包含数据流中的初始元素。每次调用KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2];KthLargest...原创 2020-04-19 20:37:30 · 178 阅读 · 0 评论 -
(两百三十一)leetcode 滑动窗口的最大值
1.题目给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 ...原创 2020-04-11 13:28:11 · 199 阅读 · 0 评论 -
(两百三十)leetcode 化栈为队
1.题目实现一个MyQueue类,该类用两个栈来实现一个队列。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false说明:你只能使用标准的栈操作 -- 也就...原创 2020-04-11 11:16:18 · 105 阅读 · 0 评论 -
(两百二十九)leetcode 栈的最小值
1.题目请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.get...原创 2020-04-11 11:01:14 · 199 阅读 · 0 评论 -
(两百二十七)leetcode 删除字符串中的所有相邻重复项
1.题目给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项...原创 2020-04-06 12:54:16 · 222 阅读 · 0 评论 -
(两百二十六) leetcode 比较含退格的字符串
1.题目给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 3:输入...原创 2020-04-06 11:48:31 · 178 阅读 · 0 评论 -
(两百二十五) leetcode 棒球比赛
1.题目你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. "+"(一轮的得分):表示本轮获得的得分是前两轮有效回合得分的总和。3. "D"(一轮的得分):表示本轮获得的得分是前一轮有效回合得分的两倍。4. "C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有效回合的分数是无效...原创 2020-04-04 09:52:24 · 255 阅读 · 0 评论 -
(两百二十四) leetcode 下一个更大元素 I
1.题目给定两个没有重复元素的数组nums1 和nums2,其中nums1是nums2的子集。找到nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出-1。示例 1:输入: nums1 = [4,1,2], nums2 = [1...原创 2020-04-03 21:05:58 · 180 阅读 · 0 评论 -
(两百二十三)leetcode 用栈实现队列
1.题目使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。pop() -- 从队列首部移除元素。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回 1...原创 2020-04-02 21:16:25 · 170 阅读 · 0 评论 -
(两百二十二)leetcode 用队列实现栈
1. 题目https://leetcode-cn.com/problems/implement-stack-using-queues/使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是push to back, peek/...原创 2020-04-01 21:42:04 · 179 阅读 · 0 评论 -
(两百二十一)leetcode 最小栈
1.题目https://leetcode-cn.com/problems/min-stack/2.思路push和pop本来就是栈的特性,top查了下有peek方法,主要是最小元素没有现成的,我本来想的方法是用一个辅助栈,每次遍历一下得到最小的再将pop出来的元素放回去,然后超时了。。。3.coding3.1 超时class MinStack2 { ...原创 2020-03-31 21:43:20 · 127 阅读 · 0 评论 -
(两百二十)leetcode 用两个栈实现队列
1.题目2.思路题目中要求使用两个栈实现一个加头,一个去尾,stack去尾特别容易,直接pop就好了,加头比较难,因为stack是先进后出的数据结构。除非是将已经入栈的全部出栈,然后将第一个加进去,然后再将出栈的按原来顺序入栈才行3.codingclass CQueue { Stack<Integer> aStack; Stack<...原创 2020-03-30 21:28:21 · 184 阅读 · 0 评论 -
(两百一十五)leetcode 有效的括号
1.问题https://leetcode-cn.com/problems/valid-parentheses/2.思路还是栈的思路,左括号入栈,右括号不入栈只出栈,出栈的判断是不是对应的左括号3.coding public static boolean isValid(String s) { int length = s.length()...原创 2020-03-29 12:33:15 · 108 阅读 · 0 评论 -
(两百一十四) leetcode 删除最外层的括号
https://leetcode-cn.com/problemset/algorithms/?difficulty=%E7%AE%80%E5%8D%95&topicSlugs=stackleetcode刷题可以控制难度和tag,按系列来刷总结下规律1.题目https://leetcode-cn.com/problems/remove-outermost-parenthes...原创 2020-03-29 11:06:51 · 193 阅读 · 0 评论 -
(一百二十一) LeetCode 2 整数反转
1.题目2.解答package com.example.a2_reverse;public class MyClass { public static int reverse(int x) { String originInt = String.valueOf(x); String reverseInt = new StringBuilde...原创 2019-01-13 21:09:37 · 165 阅读 · 2 评论 -
(一百零一)LeetCode 1 两数相加
1.题目 2.解答/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public Li...原创 2018-10-20 11:44:32 · 190 阅读 · 0 评论 -
(一百)体验LeetCode
github demo : https://github.com/happyjiatai/LeetCodeTest/tree/master/1_two_sum1.搜索百度一下第一个链接是leetCode国际版?第二个是中文版,我进入到中文版里去了。 2.界面 3.题目随便点第一个两数之和3.1 编写代码class Solution { ...原创 2018-10-14 10:18:59 · 328 阅读 · 0 评论