
leetcode
俺 也一样
这个作者很懒,什么都没留下…
展开
-
二维网格迁移
给你一个 n 行 m 列的二维网格grid和一个整数k。你需要将grid迁移k次。每次「迁移」操作将会引发下述活动:位于 grid[i][j]的元素将会移动到grid[i][j + 1]。位于grid[i][m - 1] 的元素将会移动到grid[i + 1][0]。位于 grid[n - 1][m - 1]的元素将会移动到grid[0][0]。请你返回k...原创 2019-11-28 21:27:59 · 134 阅读 · 0 评论 -
搜索推荐系统
给你一个产品数组products和一个字符串searchWord,products数组中每个产品都是一个字符串。请你设计一个推荐系统,在依次输入单词searchWord 的每一个字母后,推荐products 数组中前缀与searchWord 相同的最多三个产品。如果前缀相同的可推荐产品超过三个,请按字典序返回最小的三个。请你以二维列表的形式,返回在输入searchWor...原创 2019-11-28 21:12:11 · 213 阅读 · 0 评论 -
统计参与通信的服务器
这里有一幅服务器分布图,服务器的位置标识在m * n的整数矩阵网格grid中,1 表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。示例 1:输入:grid = [[1,0],[0,1]]输出:0解释:没有一台服务器能与其他服务器进行通信。示例...原创 2019-11-28 20:39:08 · 194 阅读 · 0 评论 -
LCP 1. 猜数字
小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。示例 1:输入:guess = [1,2,3], answer = [1,2,3]...原创 2019-11-28 20:13:12 · 115 阅读 · 0 评论 -
统计封闭岛屿的数目
有一个二维矩阵 grid,每个位置要么是陆地(记号为0 )要么是水域(记号为1 )。我们从一块陆地出发,每次可以往上下左右4 个方向相邻区域走,能走到的所有陆地区域,我们将其称为一座「岛屿」。如果一座岛屿完全由水域包围,即陆地边缘上下左右所有相邻区域都是水域,那么我们将其称为 「封闭岛屿」。请返回封闭岛屿的数目。来源:力扣(LeetCode)链接:https://le...原创 2019-11-13 16:56:27 · 137 阅读 · 0 评论 -
重构 2 行二进制矩阵
给你一个2行 n 列的二进制数组:矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是0就是1。第 0 行的元素之和为upper。第 1 行的元素之和为 lower。第 i 列(从 0 开始编号)的元素之和为colsum[i],colsum是一个长度为n的整数数组。你需要利用upper,lower和colsum来重构这个矩阵,并以二维整数数组的形式返回它。...原创 2019-11-13 16:19:22 · 236 阅读 · 0 评论 -
最长回文子序列
给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。示例 1:输入:"bbbab"输出:4一个可能的最长回文子序列为 "bbbb"。示例 2:输入:"cbbd"输出:2一个可能的最长回文子序列为 "bb"。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palin...原创 2019-11-13 15:00:00 · 86 阅读 · 0 评论 -
检查替换后的词是否有效
给定有效字符串"abc"。对于任何有效的字符串 V,我们可以将 V 分成两个部分 X 和 Y,使得 X + Y(X 与 Y 连接)等于 V。(X或 Y 可以为空。)那么,X + "abc" + Y 也同样是有效的。例如,如果 S = "abc",则有效字符串的示例是:"abc","aabcbc","abcabc","abcabcababcc"。无效字符串的示例是:"abccba","a...原创 2019-11-08 20:05:26 · 233 阅读 · 0 评论 -
可被 K 整除的最小整数
给定正整数K,你需要找出可以被 K 整除的、仅包含数字 1 的最小正整数 N。返回N的长度。如果不存在这样的N,就返回 -1。示例 1:输入:1输出:1解释:最小的答案是 N = 1,其长度为 1。示例 2:输入:2输出:-1解释:不存在可被 2 整除的正整数 N 。示例 3:输入:3输出:3解释:最小的答案是 N = 111,其长度为 3。...原创 2019-11-08 19:50:28 · 544 阅读 · 0 评论 -
煎饼排序
给定数组A,我们可以对其进行煎饼翻转:我们选择一些正整数k<= A.length,然后反转 A 的前 k个元素的顺序。我们要执行零次或多次煎饼翻转(按顺序一次接一次地进行)以完成对数组 A 的排序。返回能使A 排序的煎饼翻转操作所对应的 k 值序列。任何将数组排序且翻转次数在10 * A.length 范围内的有效答案都将被判断为正确。示例 1:输入:[3,2,...原创 2019-10-31 18:27:44 · 302 阅读 · 0 评论 -
在 D 天内送达包裹的能力
传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i个包裹的重量为weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5输出:15解...原创 2019-10-29 20:12:51 · 193 阅读 · 0 评论 -
K 个一组翻转链表
给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当k= 2 时,应当返回: 2->1->4->3->5当k= 3 时,应当返回: 3->...原创 2019-10-26 09:48:54 · 94 阅读 · 0 评论 -
删除子文件夹
你是一位系统管理员,手里有一份文件夹列表 folder,你的任务是要删除该列表中的所有 子文件夹,并以 任意顺序 返回剩下的文件夹。我们这样定义「子文件夹」:如果文件夹folder[i]位于另一个文件夹folder[j]下,那么folder[i]就是folder[j]的子文件夹。文件夹的「路径」是由一个或多个按以下格式串联形成的字符串:/后跟一个或者多个小写英文字母...原创 2019-10-21 20:18:13 · 215 阅读 · 0 评论 -
缀点成线
在一个XY 坐标系中有一些点,我们用数组coordinates来分别记录它们的坐标,其中coordinates[i] = [x, y]表示横坐标为 x、纵坐标为 y的点。请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 <font color="#c7254e" face="Menlo, Monaco, Consolas, Courier New, monospa...原创 2019-10-21 19:51:38 · 426 阅读 · 0 评论 -
爱吃香蕉的珂珂
珂珂喜欢吃香蕉。这里有N堆香蕉,第 i 堆中有piles[i]根香蕉。警卫已经离开了,将在H小时后回来。珂珂可以决定她吃香蕉的速度K(单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有...原创 2019-10-15 17:44:16 · 142 阅读 · 0 评论 -
数组中两个数的最大异或值
给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231。找到 ai 和aj最大的异或 (XOR) 运算结果,其中0 ≤ i,j < n。你能在O(n)的时间解决这个问题吗?示例:输入: [3, 10, 5, 25, 2, 8]输出: 28解释: 最大的结果是 5 ^ 25 = 28.来源:力扣(Le...原创 2019-10-15 17:32:12 · 430 阅读 · 0 评论 -
分类方法归结为哪几种类型
从使用技术上来分,可以分为四种类型:基于距离的分类方法、决策树分类方法、贝叶斯分类方法和规则归纳方法。基于距离的分类方法主要有最邻近方法;决策树方法有ID3、C4.5、VFDT等;贝叶斯方法包括朴素贝叶斯方法和EM算法;规则归纳方法包括AQ算法、CN2算法和FOIL算法。...原创 2019-10-14 21:31:09 · 5674 阅读 · 0 评论 -
所有可能的满二叉树
满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点。返回包含 N 个结点的所有可能满二叉树的列表。 答案的每个元素都是一个可能树的根结点。答案中每个树的每个结点都必须有 node.val=0。你可以按任何顺序返回树的最终列表。示例:输入:7输出:[[0,0,0,null,null,0,0,null,null,0,0],[0,0,0,null,null,0,0...原创 2019-10-14 15:41:04 · 248 阅读 · 0 评论 -
可以攻击国王的皇后
在一个8x8的棋盘上,放置着若干「黑皇后」和一个「白国王」。「黑皇后」在棋盘上的位置分布用整数坐标数组queens表示,「白国王」的坐标用数组 king 表示。「黑皇后」的行棋规定是:横、直、斜都可以走,步数不受限制,但是,不能越子行棋。请你返回可以直接攻击到「白国王」的所有「黑皇后」的坐标(任意顺序)。示例 1:输入:queens = [[0,1],[1,0...原创 2019-10-13 19:05:51 · 119 阅读 · 0 评论 -
分割平衡字符串
在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。给出一个平衡字符串s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。示例 1:输入:s = "RLRRLLRLRL"输出:4解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。示例 2:输入:s...原创 2019-10-13 18:16:43 · 103 阅读 · 0 评论 -
在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7,8,8,10],...原创 2019-07-01 22:51:50 · 261 阅读 · 0 评论 -
搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0来...原创 2019-07-01 23:00:11 · 96 阅读 · 0 评论 -
滑动窗口最大值
给定一个数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口 k 内的数字。滑动窗口每次只向右移动一位。返回滑动窗口最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释: 滑动窗口的位置 最大值-----------...原创 2019-07-07 16:53:38 · 96 阅读 · 0 评论 -
C++ 类型转换
先把重点列出来,内容之后补上* dynamic_cast;* const_cast;* static_cast;* reinterpret_cast。在C++ prime plus 的642页开始原创 2019-07-07 18:10:54 · 70 阅读 · 0 评论 -
全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations著作权归领扣网络所有。商业转载请...原创 2019-07-07 20:28:02 · 88 阅读 · 0 评论 -
全排列Ⅱ
给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class So...原创 2019-07-07 20:47:34 · 145 阅读 · 0 评论 -
1. 两数之和
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:...原创 2019-06-26 20:52:19 · 85 阅读 · 0 评论 -
删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from...原创 2019-07-08 09:22:01 · 82 阅读 · 0 评论 -
删除排序链表中的重复元素 II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。示例1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例2:输入: 1->1->1->2->3输出: 2->3来源:力扣(LeetCode)链接:https://leetcode-cn...原创 2019-07-08 10:05:45 · 116 阅读 · 0 评论 -
分隔链表
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from...原创 2019-07-08 10:25:15 · 192 阅读 · 0 评论 -
合并两个有序数组
给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = ...原创 2019-07-08 10:40:34 · 102 阅读 · 0 评论 -
移除元素
给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两...原创 2019-07-02 18:53:23 · 254 阅读 · 0 评论 -
删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:...原创 2019-07-02 20:46:06 · 85 阅读 · 0 评论 -
格雷编码
格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:输入:2输出:[0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的n,其格雷编码序列并不唯一。例如,[0,2,3,1]也是一个有效的格雷编码序列。00 -...原创 2019-07-08 15:52:00 · 199 阅读 · 0 评论 -
相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: ...原创 2019-07-08 16:11:29 · 86 阅读 · 0 评论 -
二叉树的中序遍历
给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处...原创 2019-07-08 16:45:38 · 87 阅读 · 0 评论 -
二叉树的前序遍历
给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,2,3]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal著作权归领扣网络所有。商业转载请联系官方授权,非商业转...原创 2019-07-08 16:46:39 · 83 阅读 · 0 评论 -
二叉树的后序遍历
给定一个二叉树,返回它的 后序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [3,2,1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal著作权归领扣网络所有。商业转载请联系官方授权,非商业转...原创 2019-07-08 16:48:51 · 98 阅读 · 0 评论 -
反转链表 II
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com/proble...原创 2019-07-09 08:03:44 · 89 阅读 · 0 评论 -
从前序与中序遍历序列构造二叉树
根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7来源:力扣(LeetCode)链接:https://leetcode-cn...原创 2019-07-09 09:16:33 · 233 阅读 · 0 评论