
Leetcode
刷题
swust_fang
people should change
展开
-
Leetcode 552.学生出勤记录‖ 动态规划+容斥
题目链接:传送门可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:'A':Absent,缺勤'L':Late,迟到'P':Present,到场如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:按总出勤计,学生缺勤('A')严格 少于两天。学生 不会 存在 连续 3 天或 连续 3 天以上的迟到('L')记录。给你一个整数 n ,表示出勤记录的长度(次数)。请你返回记录长度为 n 时,可能获得出勤奖励的记录情况原创 2021-08-18 17:21:31 · 161 阅读 · 0 评论 -
Leetcode 526.优美的排列 二进制状压DP
题目链接:传送门假设有从 1 到 N 的N个整数,如果从这N个数字中成功构造出一个数组,使得数组的第 i位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列。条件:(1)第i位的数字能被i整除(2)i能被第 i 位上的数字整除现在给定一个整数 N,请问可以构造多少个优美的排列?题意:如字面意思构造一个排列,让第i位放的数字跟i是能够整除的一个关系。思路:N<=15,从这个n的范围来看就是一个2的15次方的...原创 2021-08-17 22:56:30 · 245 阅读 · 0 评论 -
Leetcode 15.三数之和 双指针 or 暴力哈希
题目链接:传送门题目:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。暴力+Hash 把所有数字用map记录个数,然后排序,拍完序之后n²暴力枚举两个数,求第三个数在map里边不,然后怎么判是否有重复的方法就是把三个数直接hash,总体来说就是全部暴力,稍微加了一点点剪枝然后卡过去了。时间复杂度 n²lognconst int mod =1e9+...原创 2021-08-17 22:33:13 · 142 阅读 · 0 评论 -
Leecode 1583.统计不开心的朋友
七夕特辑之不开心的朋友,真行。题目链接:传送门day3题意:模拟-水博客#include<bits/stdc++.h>class Solution {public: int unhappyFriends(int n, vector<vector<int>>& preferences, vector<vector<int>>& pairs) { int happy_value[505][5原创 2021-08-14 23:41:48 · 679 阅读 · 1 评论 -
最长回文子序列
好久没敲题了QAQ题目链接:传送门题意:求字符串的最长回文子序列。输入:s = "bbbab"输出:4解释:一个可能的最长回文子序列为 "bbbb" 。思路:区间dp,dp[i][j]表示i~j的最长回文子序列长度,如果是s[i] == s[j] ,那么s[i][j] =2+s[i+1][j-1],如果不相等呢,区间长度的上一层去找,dp[i][j]肯定是dp[i,j-1],dp[i+1,j]中的一个。C++:class Solution {public: i原创 2021-08-12 23:55:10 · 135 阅读 · 0 评论