摘要:
在腾讯云搞了台服务器,于是打算把博客移植过去。 博客新地址:周小楠的小窝 阅读全文
摘要:
题目链接:LeetCode 1020 飞地的数量 题目大意: 题解: 很显然,边缘的$1$或者与边缘的$1$直接或间接相连的$1$可以离开网格边界。 从外向内搜索与边缘的$1$直接或间接相连的$1$,并打上标记,再遍历数组统计未打上标记的$1$的个数。 class Solution { privat 阅读全文
摘要:
题目链接:LeetCode 10 正则表达式匹配 题目大意: 给你一个字符串$s$和一个字符规律$p$,请你来实现一个支持$'.'\(和\)'*'$的正则表达式匹配。 $'.'$匹配任意单个字符; $'*'$匹配零个或多个前面的那一个元素。 所谓匹配,是要涵盖整个字符串$s$的,而不是部分字符串。 阅读全文
摘要:
题目链接:LeetCode 31 下一个排列 题目大意: 题解: 注意到下一个排列总是比当前排列要大,除非该排列已经是最大的排列。我们希望找到一种方法,能够找到一个大于当前序列的新序列,且变大的幅度尽可能小。具体地: 我们需要将一个左边的“较小数”与一个右边的“较大数”交换,以能够让当前排列变大,从 阅读全文
摘要:
题目链接:LeetCode 2006 差的绝对值为K的数对数目 题目大意: 给你一个整数数组$nums$和一个整数$k$,请你返回数对$(i, j)$的数目,满足$i < j$且$\begin{vmatrix}nums[i]-nums[j]\end{vmatrix}=k$。 题解: 暴力 我们可以使 阅读全文
摘要:
题目链接:LeetCode 剑指Offer38 字符串的排列 题目大意: 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 题解: 回溯 通过搜索和回溯枚举所有的排列情况,但会有重复的情况。 只要在递归函数中设定一个规则,保证在填每一个空位 阅读全文
摘要:
题目链接:LeetCode 136 只出现一次的数字 题目大意: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 不能使用额外的空间。 题解: 由于不能使用额外的空间,所以不能通过计数等方法解决。 于是想到位运算中的异或运算,有以下性质: 任何 阅读全文
摘要:
题目链接:LeetCode 1001 网格照明 题目大意: 题解: 假设一盏灯的坐标为$(x_i,y_i)$,那么它所在的行的数值为$x_i$,列的数值为$y_i$,正对角线的数值为$x_i-y_i$,反对角线的数值为$x_i+y_i$。确定某一直线的唯一数值标识后,我们就可以通过哈希表来记录某一直 阅读全文
摘要:
题目链接:LeetCode 1143 最长公共子序列 题目大意: 题解: 最长公共子序列模板题,设$dp[i][j]$为字符串$A[1...i]$与字符串$B[1...j]$的最长公共子序列长度,则状态转移方程为: \(dp[i][j] = max\{dp[i-1][j-1] + (A[i] == 阅读全文
摘要:
题目链接:LeetCode 剑指Offer51 数组中的逆序对 题目大意: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 题解: 归并排序过程中计数即可。 class Solution { public: int rev 阅读全文