摘要: 题目链接:LeetCode 136 只出现一次的数字 题目大意: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 不能使用额外的空间。 题解: 由于不能使用额外的空间,所以不能通过计数等方法解决。 于是想到位运算中的异或运算,有以下性质: 任何 阅读全文
posted @ 2022-02-08 20:44 ZZHHOOUU 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 1001 网格照明 题目大意: 题解: 假设一盏灯的坐标为$(x_i,y_i)$,那么它所在的行的数值为$x_i$,列的数值为$y_i$,正对角线的数值为$x_i-y_i$,反对角线的数值为$x_i+y_i$。确定某一直线的唯一数值标识后,我们就可以通过哈希表来记录某一直 阅读全文
posted @ 2022-02-08 20:20 ZZHHOOUU 阅读(33) 评论(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 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 剑指Offer51 数组中的逆序对 题目大意: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 题解: 归并排序过程中计数即可。 class Solution { public: int rev 阅读全文
posted @ 2022-02-08 20:07 ZZHHOOUU 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 316 去除重复字母 题目大意: 给你一个字符串$s$,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。 题解: 参考自LeedCode官方题解 首先考虑一个简单的问题:给定一个字符串$s$,如何去掉其中的 阅读全文
posted @ 2022-02-08 20:01 ZZHHOOUU 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 130 被围绕的区域 题目大意: 给你一个$m\times n$的矩阵$board$,由若干字符$'X'\(和\)'O'\(,找到所有被\)'X'\(围绕的区域,并将这些区域里所有的\)'O'\(用\)'X'$填充。 题解: 很明显只有边缘的$'O'\(以及直接或间接与这 阅读全文
posted @ 2022-02-08 19:47 ZZHHOOUU 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 1414 和为 K 的最少斐波那契数字数目 题目大意: 题解: 参考自LeedCode官方题解 首先找到所有不超过$k$的斐波那契数字,然后每次贪心地选取不超过$k$的最大斐波那契数字,将$k$减去该斐波那契数字,重复该操作直到$k$变为$0$,此时选取的斐波那契数字满足 阅读全文
posted @ 2022-02-08 19:40 ZZHHOOUU 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 459 重复的子字符串 题目大意: 给定一个非空的字符串$s$,检查是否可以通过由它的一个子串重复多次构成。 题解: 用$KMP$算法计算循环节。 如果我们设最小循环节的长度为$i$,那么一定有$gcd(n,i)=i$,即$n$是$i$的倍数。这说明字符串$s$是由长度为 阅读全文
posted @ 2022-02-08 19:02 ZZHHOOUU 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 1553 吃掉N个橘子的最少天数 题目大意: 题解: 三条结论: 在任意一次操作$2$之前最多只会有$1$次操作$1$; 在任意一次操作$3$之前最多只会有$2$次操作$1$; 除了最后的一次操作$1$之外,其余连续的操作$1$之后都会有操作$2$或$3$。 证明参考自L 阅读全文
posted @ 2022-02-08 18:35 ZZHHOOUU 阅读(67) 评论(0) 推荐(0) 编辑