首页 > 其他分享 >第 116 场双周赛

第 116 场双周赛

时间:2023-10-28 23:45:27浏览次数:33  
标签:22 nums 元素 双周 116 数组 ans 字符串

不知道为什么今天晚上脑子里想的全是递归

 

 说实话 四道题看了都不是很有思路 也不是没有思路吧

而是知道怎么做 但是感觉写不出来 而且莫名其妙想的全是递归的解法

可能是因为浏览量最高的那篇文章也是递归

22:43-23:10 差不多30min写了两道题

 

第一题(22:58AC)

100094. 子数组不同元素数目的平方和 I

给你一个下标从 0 开始的整数数组 nums 。

定义 nums 一个子数组的 不同计数 值如下:

  • 令 nums[i..j] 表示 nums 中所有下标在 i 到 j 范围内的元素构成的子数组(满足 0 <= i <= j < nums.length ),那么我们称子数组 nums[i..j] 中不同值的数目为 nums[i..j] 的不同计数。

请你返回 nums 中所有子数组的 不同计数 的 平方 和。

由于答案可能会很大,请你将它对 109 + 7 取余 后返回。

子数组指的是一个数组里面一段连续 非空 的元素序列。

 

示例 1:

输入:nums = [1,2,1]
输出:15
解释:六个子数组分别为:
[1]: 1 个互不相同的元素。
[2]: 1 个互不相同的元素。
[1]: 1 个互不相同的元素。
[1,2]: 2 个互不相同的元素。
[2,1]: 2 个互不相同的元素。
[1,2,1]: 2 个互不相同的元素。
所有不同计数的平方和为 12 + 12 + 12 + 22 + 22 + 22 = 15 。

说实话 感觉有点难度 因为不知道怎么得到所有的子数组
class Solution(object):
    def sumCounts(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        ans = 0
        for i in range(len(nums)):
            for j in range(i+1,len(nums)+1):
                ans=ans+pow(len(set(nums[i:j])),2)
        return (ans)

也算是长知识了吧

 

第二题(23:10AC)

100104. 使二进制字符串变美丽的最少修改次数

给你一个长度为偶数下标从 0 开始的二进制字符串 s 。

如果可以将一个字符串分割成一个或者更多满足以下条件的子字符串,那么我们称这个字符串是 美丽的 :

  • 每个子字符串的长度都是 偶数 。
  • 每个子字符串都 只 包含 1 或 只 包含 0 。

你可以将 s 中任一字符改成 0 或者 1 。

请你返回让字符串 s 美丽的 最少 字符修改次数。

 

示例 1:

输入:s = "1001"
输出:2
解释:我们将 s[1] 改为 1 ,且将 s[3] 改为 0 ,得到字符串 "1100" 。
字符串 "1100" 是美丽的,因为我们可以将它分割成 "11|00" 。
将字符串变美丽最少需要 2 次修改。

说实话 没有思路
但是以一种莫名其妙的方式过了
class Solution(object):
    def minChanges(self, s):
        """
        :type s: str
        :rtype: int
        """
        length = len(s)
        ans = 0
        for i in range(0,length/2):
            if(s[i*2]!=s[i*2+1]):
                ans=ans+1
        return ans

 浅尝辄止吧

也算是有进步吧 两道题就是一次过

标签:22,nums,元素,双周,116,数组,ans,字符串
From: https://www.cnblogs.com/LYoungH/p/17795320.html

相关文章

  • Databend 开源周报第 116 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。特性预览:使用SQL管理后台任务此前,Databend引入了......
  • Databend 开源周报第 116 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。特性预览:使用SQL管理后台任务此前,Databend引入了后......
  • Oracle10gOCP042题库121166题共168题
    121.Youwanttocreateanewoptimizeddatabaseforyourtransactionalproductionenvironmenttobeusedbyafinancialapplication.Whilecreatingthedatabase,youwanttheOraclesoftwaretotakecareofallbasicsettingstooptimizethedatabasep......
  • 1168
    复制代码到粘帖板#include<bits/stdc++.h>#include<string>usingnamespacestd;intmain(){strings1,s2;cin>>s1>>s2;inta[201]={},b[201]={},c[201]={};intlena=s1.size();intlenb=s2.size();for(int......
  • 文心一言 VS 讯飞星火 VS chatgpt (116)-- 算法导论10.3 1题
    一、用go语言,画图表示序列(13,4,8,19,5,11),其存储形式为多数组表示的双向链表。同样画出单数组表示的形式。文心一言:在Go语言中,我们无法直接画图,但我可以帮助你描述如何使用Go语言来表示和操作多数组表示的双向链表和单数组表示。首先,多数组表示的双向链表可以表示为以下的数据结构:......
  • 蓝桥第一场双周赛
    蓝桥第一场双周赛最后一题看了别人代码还是有点不会,有些知识还没学到,等学会了再回来补这个最后一题比赛地址三带一题目链接思路:就是一个比较简单的模拟代码:/*[[⣇⣿⠘⣿⣿⣿⡿⡿⣟⣟⢟⢟⢝⠵⡝⣿⡿⢂⣼⣿⣷⣌⠩⡫⡻⣝⠹⢿⣿⣷]],[[⡆⣿⣆⠱⣝⡵⣝⢅⠙⣿⢕⢕⢕⢕⢝⣥......
  • CF1168C And Reachability
    CF1168CAndReachabilityAndReachability-洛谷|计算机科学教育新生态(luogu.com.cn)目录CF1168CAndReachability题目大意思路code题目大意给定一个长度为\(n\)的数组\(a\)。你可以选择一个长度为\(k\)的数组\(p\)\(p_1=x,p_k=y\)当\(x<y\)且\(a_......
  • CF1168C
    CF1168C题面及数据范围Ps:链接为洛谷OJ。发现对于每一个\(i\)需要求经过若干次转移使第\(j\)个二进制位为\(1\)的最近位置\(k\),查询时,当\(k\leqy\)便可以到达。下文的位无特殊说明位均指二进制位。设\(f[i][j]\)为\(i\)经过转移使第\(j\)位为\(1\)的最近点......
  • 第一次双周赛
    第一次双周赛7-2a*b知识点:十六进制数的高精度乘法核心代码:用两个for循环处理for(inti=0;i<len1;i++) { len3=i; for(intj=0;j<len2;j++) { z[len3]+=x[i]*y[j]; if(z[len3]>=16) { z[len3+1]+=z[len3]/16; z[len3]%=16; } len3++; } ......
  • 第五次双周赛
    第五次双周赛目录第五次双周赛L1-3帅到没朋友L1-7连续因子L2-1红色警报(并查集)L2-2秀恩爱分得快L2-3插松枝L2-4哲哲打游戏L1-3帅到没朋友看题不仔细!!坑1:00000到99999,都是五位数,不足需要补0坑2:用sum记输出数量来决定是否输出空格,不能用m!=1记,因为最后一个被......