
LeetCode
handsomeKyne
清华大学硕士,蚂蚁金服算法工程师一枚
展开
-
每日一题:1047. 删除字符串中的所有相邻重复项
每日一题:1047. 删除字符串中的所有相邻重复项1、题目给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操原创 2021-03-09 23:09:41 · 390 阅读 · 0 评论 -
每日一题:剑指 Offer 59 - I. 滑动窗口的最大值
每日一题:剑指 Offer 59 - I. 滑动窗口的最大值一、题目给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7 3 1 [3 -1原创 2021-03-08 23:43:07 · 247 阅读 · 0 评论 -
每日一题:单调栈系列
每日一题:单调栈系列1、题目一:496. 下一个更大元素I给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:原创 2021-03-06 19:12:14 · 326 阅读 · 0 评论 -
每日一题:232.用栈实现队列
每日一题:232.用栈实现队列1、题目请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只有 push to top, pe原创 2021-03-05 21:01:10 · 274 阅读 · 0 评论 -
每日一题:剑指 Offer 53 - I. 在排序数组中查找数字 I
每日一题:剑指 Offer 53 - I. 在排序数组中查找数字 I1、题目统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长度 <= 500002、解法题目比较清晰,最简单暴力的方法是从左到右进行进行判断统计,时间复杂度为O(n),但是我们确忽略了数组是排序好的特点(这里原创 2021-03-03 23:24:00 · 347 阅读 · 3 评论 -
每日一题:581.最短无序连续子数组
每日一题:581.最短无序连续子数组1、题目给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。示例 1:输入:nums = [2,6,4,8,10,9,15]输出:5解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。示例 2:输入:nums = [1,2,3,4]输出:0示例 3:输入:nums = [1]输出:0原创 2021-03-01 23:28:35 · 354 阅读 · 2 评论 -
每日一题:剑指Offer 40.无序数组中最小的K个数
每日一题:剑指Offer 40.无序数组中最小的K个数1、题目输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 1原创 2021-02-27 19:26:10 · 190 阅读 · 0 评论 -
每日一题:面试题01.07.旋转矩阵
面试题01.07.旋转矩阵1、题目给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?(可以使用临时变量)示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11], [ 2, 4,原创 2021-02-27 18:11:33 · 210 阅读 · 0 评论 -
每日一题:剑指Offer 29.顺时针打印矩阵
每日一题:剑指Offer 29.顺时针打印矩阵1、题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 &l原创 2021-02-27 17:12:23 · 108 阅读 · 0 评论 -
每日一题:3.无重复字符的最长子串
每日一题:3.无重复字符的最长子串1、题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,原创 2021-02-26 00:29:23 · 222 阅读 · 3 评论 -
每日一题:867.转置矩阵
每日一题:867.转置矩阵1、题目给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:matrix = [[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]提示:m == matrix.lengthn == mat原创 2021-02-25 23:16:25 · 273 阅读 · 0 评论 -
每日一题:2.两数相加
每日一题:2.两数相加1、题目给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。`示例 1:``输入:l1 = [2,4,3], l2 = [5,6,4]``输出:[7,0,8]``解释:342 + 465 = 807.``示例 2:``输入:l1 = [0], l2 = [0]``输出:[0]``示原创 2021-02-25 00:49:42 · 290 阅读 · 0 评论 -
每日一题:1052. 爱生气的书店老板
每日一题:1052. 爱生气的书店老板1、题目今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续 X 分钟不生气,但却只能使用一原创 2021-02-23 09:01:15 · 265 阅读 · 0 评论