
leetcode
文章平均质量分 73
henuzxy
已经成为刷题过千的男人,即将成为cf 1900分的男人。
展开
-
leetcode 1739. 放置盒子 (数学,二分)
放置盒子有一个立方体房间,其长度、宽度和高度都等于 n 个单位。请你在房间里放置 n 个盒子,每个盒子都是一个单位边长的立方体。放置规则如下:你可以把盒子放在地板上的任何地方。如果盒子 x 需要放置在盒子 y 的顶部,那么盒子 y 竖直的四个侧面都 必须 与另一个盒子或墙相邻。给你一个整数 n ,返回接触地面的盒子的 最少 可能数量。示例 1:输入:n = 3输出:3解释:上图是 3 个盒子的摆放位置。这些盒子放在房间的一角,对应左侧位置。示例 2:输入:n = 4输出:3解释.原创 2021-01-26 01:24:23 · 781 阅读 · 3 评论 -
leetcode 974. 和可被 K 整除的子数组
给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。示例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]提示:1 <= A.length <= 30000-10000 <= A[i] <= 100002原创 2020-05-28 00:09:21 · 231 阅读 · 0 评论 -
leetcode 41. First Missing Positive(思维)
First Missing PositiveHard2902741Add to ListShareGiven an unsorted integer array, find the smallest missing positive integer.Example 1:Input: [1,2,0]Output: 3Example 2:Input: [3,4,-1,1]Out...原创 2020-04-17 00:53:10 · 194 阅读 · 0 评论 -
Leetcode 155. 最小栈 O(1)空间复杂度的做法
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minS...原创 2020-01-10 01:43:58 · 864 阅读 · 0 评论 -
链表的归并排序 & leetcode 148. 排序链表
发现链表的归并排序要注意的点还真挺多。对元素的划分,即要把链表从中间断开,这个可以利用一个快指针每次走两步,一个慢指针一次走一步的做法来实现,并记录前半部分链表的最后一个节点。对链表的合并,这个我是利用递归,很容易理解与实现。代码实现如下:/** * Definition for singly-linked list. * struct ListNode { * int ...原创 2019-09-18 23:49:01 · 402 阅读 · 0 评论 -
剑指offer - 滑动窗口最大值 (单调队列的使用)& POJ 2823 & leetcode 239. 滑动窗口最大值
给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, ...原创 2019-04-23 15:19:34 · 315 阅读 · 0 评论 -
leetcode 334. 递增的三元子序列 (dp)
给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。数学表达式如下:如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。示例 1:输入: [1,...原创 2019-08-13 17:05:16 · 159 阅读 · 0 评论 -
leetcode 154. 寻找旋转排序数组中的最小值 II (二分)
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。示例 1:输入: [1,3,5]输出: 1示例 2:输入: [2,2,2,0,1]输出: 0来源:力扣(LeetCode)链接:https://leetcode-cn.com/p...原创 2019-07-28 15:17:24 · 286 阅读 · 0 评论 -
leetcode 995. K 连续位的最小翻转次数 (区间更新,单点查询)
在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0。返回所需的 K 位翻转的次数,以便数组没有值为 0 的元素。如果不可能,返回 -1。示例 1:输入:A = [0,1,0], K = 1输出:2解释:先翻转 A[0],然后翻转 A[2]。示例 2:输入:A = [1,1,0],...原创 2019-07-30 21:27:35 · 528 阅读 · 0 评论 -
leetcoe 第 147 场周赛 题解
A题:1137. 第 N 个泰波那契数人尽皆知傻逼题,直接数组模拟。B题:1138. 字母板上的路径我们从一块字母板上的位置 (0, 0) 出发,该坐标对应的字符为 board[0][0]。在本题里,字母板为board = [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”].我们可以按下面的指令规则行动:如果方格存在,‘U’ 意味着将我...原创 2019-07-29 15:08:20 · 230 阅读 · 0 评论 -
leetcode 101. 对称二叉树 递归和迭代两种写法
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ \2 2\ \3 3做法就是,判断 根左右遍历 和 根右左遍历 是否相同。注意用BFS获得每层的做法是不对的(话说我最开始想到的竟然...原创 2019-05-11 12:37:47 · 379 阅读 · 0 评论 -
leetcode 442. 数组中重复的数据 (思维) &448
给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]最开始毫无思路,结果发现每个数的范围都是[1,n],所以可以考虑这种做法,如果某个位置的数不属于这个位置,就把他交换到对应...原创 2019-05-14 09:16:51 · 153 阅读 · 0 评论