随笔分类 -  LeetCode题集

摘要:题目链接:LeetCode 1020 飞地的数量 题目大意: 题解: 很显然,边缘的1或者与边缘的1直接或间接相连的1可以离开网格边界。 从外向内搜索与边缘的1直接或间接相连的1,并打上标记,再遍历数组统计未打上标记的1的个数。 class Solution { privat 阅读全文
posted @ 2022-02-12 19:12 ZZHHOOUU 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 10 正则表达式匹配 题目大意: 给你一个字符串s和一个字符规律p,请你来实现一个支持.\(\)的正则表达式匹配。 .匹配任意单个字符; 匹配零个或多个前面的那一个元素。 所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。 阅读全文
posted @ 2022-02-11 21:02 ZZHHOOUU 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 31 下一个排列 题目大意: 题解: 注意到下一个排列总是比当前排列要大,除非该排列已经是最大的排列。我们希望找到一种方法,能够找到一个大于当前序列的新序列,且变大的幅度尽可能小。具体地: 我们需要将一个左边的“较小数”与一个右边的“较大数”交换,以能够让当前排列变大,从 阅读全文
posted @ 2022-02-09 13:52 ZZHHOOUU 阅读(18) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 2006 差的绝对值为K的数对数目 题目大意: 给你一个整数数组nums和一个整数k,请你返回数对(i,j)的数目,满足i<j|nums[i]nums[j]|=k。 题解: 暴力 我们可以使 阅读全文
posted @ 2022-02-09 13:46 ZZHHOOUU 阅读(67) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 剑指Offer38 字符串的排列 题目大意: 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 题解: 回溯 通过搜索和回溯枚举所有的排列情况,但会有重复的情况。 只要在递归函数中设定一个规则,保证在填每一个空位 阅读全文
posted @ 2022-02-09 13:24 ZZHHOOUU 阅读(25) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 136 只出现一次的数字 题目大意: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 不能使用额外的空间。 题解: 由于不能使用额外的空间,所以不能通过计数等方法解决。 于是想到位运算中的异或运算,有以下性质: 任何 阅读全文
posted @ 2022-02-08 20:44 ZZHHOOUU 阅读(25) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 1001 网格照明 题目大意: 题解: 假设一盏灯的坐标为(xi,yi),那么它所在的行的数值为xi,列的数值为yi,正对角线的数值为xiyi,反对角线的数值为xi+yi。确定某一直线的唯一数值标识后,我们就可以通过哈希表来记录某一直 阅读全文
posted @ 2022-02-08 20:20 ZZHHOOUU 阅读(35) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 1143 最长公共子序列 题目大意: 题解: 最长公共子序列模板题,设dp[i][j]为字符串A[1...i]与字符串B[1...j]的最长公共子序列长度,则状态转移方程为: \(dp[i][j] = max\{dp[i-1][j-1] + (A[i] == 阅读全文
posted @ 2022-02-08 20:13 ZZHHOOUU 阅读(20) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 剑指Offer51 数组中的逆序对 题目大意: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 题解: 归并排序过程中计数即可。 class Solution { public: int rev 阅读全文
posted @ 2022-02-08 20:07 ZZHHOOUU 阅读(64) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 316 去除重复字母 题目大意: 给你一个字符串s,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。 题解: 参考自LeedCode官方题解 首先考虑一个简单的问题:给定一个字符串s,如何去掉其中的 阅读全文
posted @ 2022-02-08 20:01 ZZHHOOUU 阅读(92) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 130 被围绕的区域 题目大意: 给你一个m×n的矩阵board,由若干字符X\(\)O\(\)X\(\)O\(\)X填充。 题解: 很明显只有边缘的$'O'\(以及直接或间接与这 阅读全文
posted @ 2022-02-08 19:47 ZZHHOOUU 阅读(37) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 1414 和为 K 的最少斐波那契数字数目 题目大意: 题解: 参考自LeedCode官方题解 首先找到所有不超过k的斐波那契数字,然后每次贪心地选取不超过k的最大斐波那契数字,将k减去该斐波那契数字,重复该操作直到k变为0,此时选取的斐波那契数字满足 阅读全文
posted @ 2022-02-08 19:40 ZZHHOOUU 阅读(38) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 459 重复的子字符串 题目大意: 给定一个非空的字符串s,检查是否可以通过由它的一个子串重复多次构成。 题解: 用KMP算法计算循环节。 如果我们设最小循环节的长度为i,那么一定有gcd(n,i)=i,即ni的倍数。这说明字符串s是由长度为 阅读全文
posted @ 2022-02-08 19:02 ZZHHOOUU 阅读(32) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 1553 吃掉N个橘子的最少天数 题目大意: 题解: 三条结论: 在任意一次操作2之前最多只会有1次操作1; 在任意一次操作3之前最多只会有2次操作1; 除了最后的一次操作1之外,其余连续的操作1之后都会有操作23。 证明参考自L 阅读全文
posted @ 2022-02-08 18:35 ZZHHOOUU 阅读(79) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 884 两句话中的不常见单词 题目大意: 句子是一串由空格分隔的单词。每个单词仅由小写字母组成。 如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。 给你两个句子s1s2,返回所有不常用单词的列表。返回列表中单词可以按 阅读全文
posted @ 2022-02-07 13:55 ZZHHOOUU 阅读(22) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 106 从中序与后序遍历序列构造二叉树 题目大意: 给定两个整数数组inorderpostorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树。 题解: 首先要知道,后序遍历的数组最后一个元素 阅读全文
posted @ 2022-02-07 13:45 ZZHHOOUU 阅读(31) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 1765 地图中的最高点 题目大意: 题解: 题目要求水域的高度必须为0,因此水域的高度是已经确定的值,我们可以从水域出发,推导出其余格子的高度。 首先,计算与水域相邻的格子的高度。对于这些格子来说,其相邻格子中的最小高度即为水域的高度0,因此这些格子的高度为$1 阅读全文
posted @ 2022-02-07 13:26 ZZHHOOUU 阅读(35) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 384 打乱数组 题目大意: 给你一个整数数组nums,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是等可能的。 题解: 参考自LeedCode官方题解 首先,我们考虑如何随机打乱一个数组。 不妨设数组nums,其长度为n。我们可以使用如下 阅读全文
posted @ 2022-02-06 21:35 ZZHHOOUU 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 1996 游戏中弱角色的数量 题目大意: 题解: 对于攻击值相同的角色,我们按照其防御值从小到大进行排序且按照攻击值从大到小开始遍历,这样就可以保证当前已经遍历过的最大防御值角色q的防御值maxDef严格大于当前角色p的防御值时,则此时q的攻击值一定严格大 阅读全文
posted @ 2022-02-06 14:29 ZZHHOOUU 阅读(29) 评论(0) 推荐(0) 编辑
摘要:题目链接:LeetCode 470 用Rand7()实现Rand10() 题目大意: 题解: 只需要能够满足等概率的生成10个不同的数即可,具体的生成方法可以有很多种。 我们可以调用两次Rand7()\(\)[1,49]之间的随机整数,我们只用到其中的前40个用来实现$R 阅读全文
posted @ 2022-02-06 14:23 ZZHHOOUU 阅读(34) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示