随笔分类 - lc周赛
摘要:简单模拟 class Solution: def missingInteger(self, nums: List[int]) -> int: res = nums[0] for i in range(1, len(nums)): if nums[i] == nums[i - 1] + 1: res
阅读全文
摘要:class Solution: def largestPerimeter(self, nums: List[int]) -> int: nums.sort() n = len(nums) s = list(accumulate(nums)) for i in range(n - 1, 1, -1):
阅读全文
摘要:用一个哈希表记录一下,然后遍历统计一下即可。 class Solution { public: vector<int> findMissingAndRepeatedValues(vector<vector<int>>& grid) { int n = grid.size(); unordered_s
阅读全文
摘要:使用差分的思想进行解决 class Solution: def countTestedDevices(self, batteryPercentages: List[int]) -> int: diff = 0 for x in batteryPercentages: if x > diff: dif
阅读全文
摘要:先试用哈希表来记录一下各个数组的值,在进行查询 class Solution: def findIntersectionValues(self, nums1: List[int], nums2: List[int]) -> List[int]: st1 = set(nums1) st2 = set(
阅读全文
摘要:简单模拟即可: class Solution { public: vector<int> findWordsContaining(vector<string>& words, char x) { int n = words.size(); vector<int> res; for(int i = 0
阅读全文
摘要:class Solution: def findMinimumOperations(self, s1: str, s2: str, s3: str) -> int: cnt = 0 for a, b, c in zip(s1, s2, s3): if not a == b == c: break c
阅读全文
摘要:本题我们采用隔板法+容斥原理来解决 合格总方案数 = 总方案书 - 不合理的方案数 = 不考虑limit的方案数 - 不合法方案数(至少有一个小朋友 > limit) 任意方案数 n个小球放到3个盒子中 -> n + 2个位置,选两个位置放隔板剩下位置放球 c(n + 2, 2) 三个小朋友为:甲乙
阅读全文
摘要:class Solution { public: vector<string> findHighAccessEmployees(vector<vector<string>>& access_times) { int n = access_times.size(); vector<string> re
阅读全文
摘要:本题可以发现一些枚举的技巧,在枚举多个值的时候,自己有时候脑袋晕晕的,会把变量的更新顺序搞混,此时,可以用依赖树来解决。 如同本题: class Solution: def maximumTripletValue(self, nums: List[int]) -> int: res = pre_ma
阅读全文
摘要:简单位运算模拟 class Solution { public: int findKOr(vector<int>& nums, int k) { vector<int> bit(32, 0); for(int i = 0; i < 31; i ++ ) { int cnt = 0; for(auto
阅读全文
摘要:本题为双指针和贪心。当我们遇到奇数个0或1时,直接将下一位改变即可。 class Solution { public: int minChanges(string s) { int n = s.size(); int res = 0; int l = 0, r = -1; while(r ++ <
阅读全文
摘要:2903. 找出满足差值条件的下标 I 2905. 找出满足差值条件的下标 II 这两个题只有数据范围上面的差距 这个题我们大体思路是维护双指针,枚举数字,维护集合。 这是灵神视频的代码 class Solution: def findIndices(self, nums: List[int], i
阅读全文
摘要:模拟题,记录一个k值,表示上一次记录到哪里了。若遇到prev则移动k;否则重置k; class Solution { public: vector<int> lastVisitedIntegers(vector<string>& words) { vector<int> nums, res; int
阅读全文
摘要:2833. 距离原点最远的点 本题要求最远的距离,所有‘_’必须全为左或全为右。利用前缀和的思想看看L多还是R多,最后加上_的数目就是答案。 class Solution { public: int furthestDistanceFromOrigin(string moves) { int n =
阅读全文
摘要:本题我们只需要将所有首字母取出来,并与s比较即可。 class Solution { public: bool isAcronym(vector<string>& words, string s) { string res; for(auto &it: words) { res += it[0];
阅读全文
摘要:思路:动态规划 首先计算原数组的条件数组,及所有的元素都%2 f[i]表示从零到i中选,且以第i项为结尾的最长奇偶子数组。 class Solution { public: int longestAlternatingSubarray(vector<int>& nums, int threshold
阅读全文
摘要:找规律的小题目 c ++ class Solution { public: int theMaximumAchievableX(int num, int t) { return num + t * 2; } }; 思路,动态规划。 f[i]表示,所有从0 - i - 1中跳到点 i 的方式的执行操作
阅读全文
摘要:利用差分和动态规划进行求解。首先求出差分数组d[i],f[i]表示从0-i - 1中选,且包含d[i]所有交替子数组的最大长度。 条件中有s1 = s0 + 1 所以如果d[i] == 1 将 f[i]初始化为1 d[i - 1] == 1 && d[i] == -1 或者 d[i - 1] ==
阅读全文