首页 > 其他分享 >Weekly Contest 315

Weekly Contest 315

时间:2022-10-29 22:33:35浏览次数:80  
标签:return nums int smax Contest 315 item smin Weekly

Weekly Contest 315

Problem A

Largest Positive Integer That Exists With Its Negative

思路

按照题目要求暴力求一下

代码

class Solution:
    def findMaxK(self, nums: List[int]) -> int:
        ans = -1
        for item in nums:
            if (-item) in nums:
                ans = max(ans,abs(item))
        return ans

Problem B

Count Number of Distinct Integers After Reverse Operations

思路

题目的本意就是将数组中每一个元素反转然后加入到数组中,求一下数组中不重复的个数,用set就行

代码

class Solution:
    def countDistinctIntegers(self, nums: List[int]) -> int:
        s = set()
        for item in nums:
            r = int(str(item)[::-1])
            s.add(r)
            s.add(item)
        return len(s)

Problem C

Sum of Number and Its Reverse

思路

暴力遍历从小到大, 复杂度为$O(n^2)$ 不知道为啥能过

代码

class Solution:
    def sumOfNumberAndReverse(self, num: int) -> bool:
        if num == 0:
            return True
        for i in range(1,num):
            if i == int(str(num-i)[::-1]):
                return True
        return False

Problem D

Count Subarrays With Fixed Bounds

思路

优先使用不在区间内的值将原数组划分成几部分,随后在每个部分中,先确定一个包含最大最小值的最小区间,然后按照一个方向延伸即可,具体实现用的双指针

代码

class Solution {
public:
    long long countSubarrays(vector<int>& nums, int minK, int maxK) {
        long long ret = 0;
        int smin = 0, smax = 0;
        for (int i = 0, j = 0, last = 0; i < nums.size(); i++) {
            if (nums[i] < minK || nums[i] > maxK) {
                last = j = i + 1;
                smin = smax = 0;
            }
            else {
                if (nums[i] == minK) smin++;
                if (nums[i] == maxK) smax++;
                while (j < i) {
                    if (nums[j] == minK) smin--;
                    if (nums[j] == maxK) smax--;
                    if (!smin || !smax) {
                        if (nums[j] == minK) smin++;
                        if (nums[j] == maxK) smax++;
                        break;
                    }
                    j++;
                }
                if (smin && smax) ret += j - last + 1;
            }
        }
        return ret;
    }
};
 

总结

出了3题,但是感觉状态越来越不好了,水平下滑有点严重。

标签:return,nums,int,smax,Contest,315,item,smin,Weekly
From: https://www.cnblogs.com/baihualiaoluan/p/16840073.html

相关文章

  • AtCoder Regular Contest 059
    EducationalDPRound(确信C-BeTogether给定\(n\)个数\(a_{1}\sima_n\),你至多可以对每个\(a_i\)操作一次,以\((a_i-y)^2\)的代价令\(a_i\getsy\),求\(a\)全......
  • Atcoder Grand Contest 003(A~F)
    赛时打了80分钟,后来因为要处理一些私事就没再打,过掉了ABC,推了DE没推出来,不能算很差,但也不算很好。总结一下吧。赛时A一眼题,统计四个方向是否出现过,如果相对的两......
  • [线段树套单调栈] 2019-2020 ICPC Asia Hong Kong Regional Contest H.[Hold the Line
    线段树套单调栈2019-2020ICPCAsiaHongKongRegionalContestH.​​HoldtheLine​​题目大意你已经建造了一条由编号从到的战壕组成的防线,每条战壕最初都是空的。士......
  • The 2021 ICPC Asia Nanjing Regional Contest E.Paimon Segment Tree 区间合并线段树
    The2021ICPCAsiaNanjingRegionalContestE.PaimonSegmentTree区间合并线段树/维护矩阵乘法题目大意给定长度为的序列,要求支持区间加操作,同时对操作记录历史版本,查......
  • AtCoder Beginner Contest 247 E - Max Min
    题目描述简要描述:给定一个长度为\(N\)的数组,求数组的子数组满足最大值为\(X\)且最小值为\(Y\)的子区间的个数。做法1.ST表+二分时间复杂度:\(O(n\logn)\)......
  • AtCoder Beginner Contest 266 Ex Snuke Panic (2D)
    AtCoder传送门洛谷传送门考虑dp,\(f_i\)设在\(t_i\)时刻到达第\(i\)个点,能获得的最大收益。转移:\(f_i=f_j+a_i\),其中\(j\)能转移到\(i\)的充要条件有:\(......
  • AtCoder Beginner Contest 201 题解
    vp情况:过了A到E,F没时间也不会。vp总结:ABC表现可以。D慢了一点,写之前大概考虑清楚每个变量或函数的意义,结构明晰才能更快的写出代码。E花的时间太长,原因......
  • Atcoder Grand Contest 002(A~F)
    这场打的还算舒服(虽然DE好像很久以前做过谔谔),VP赛时切掉了A~D,不过E依旧没写出来,还是太逊啦!赛时A简单分类讨论,求\(a\)到\(b\)之间数的乘积,第一眼看成了和,痛......
  • AtCoder Beginners Contest 274 Editoral
    AtCoderBeginnersContest274Editoral目录AtCoderBeginnersContest274EditoralTaskA-BattingAverageProblemStatementSampleData题面翻译SourceCode解析Tas......
  • Leetcode weekly conetest 315
    Leetcodeweeklyconetest3151.与对应负数同时存在的最大正整数解法:碰到这种查询数字是否存在的时候,用哈希表就可以很好的解决,我们首先将所有数字都插入到哈希表中,然......