IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 22.10.16 LC周赛 第2至4题 -> 正文阅读

[数据结构与算法]22.10.16 LC周赛 第2至4题

22.10.16 LC周赛 第2至4题

?? 这次周赛终于做出3道题,可惜比我强的太多了!不说废话了,好好总结一下,继续保持学习,今天的每日一题挺有意思,一会去好好看一下!
?

6205. 反转之后不同整数的数目(集合的性质)

题目链接:6205. 反转之后不同整数的数目
题目大意:给你一个由 正 整数组成的数组 nums 。
你必须取出数组中的每个整数,反转其中每个数位,并将反转后得到的数字添加到数组的末尾。这一操作只针对 nums 中原有的整数执行。
返回结果数组中 不同 整数的数目。

例如:

输入:nums = [1,13,10,12,31]
输出:6
解释:反转每个数字后,结果数组是 [1,13,10,12,31,1,31,1,21,13] 。
反转后得到的数字添加到数组的末尾并按斜体加粗表示。注意对于整数 10 ,反转之后会变成 01 ,即 1 。
数组中不同整数的数目为 6(数字 11012132131)。

输入:nums = [2,2,2]
输出:1
解释:反转每个数字后,结果数组是 [2,2,2,2,2,2] 。
数组中不同整数的数目为 1(数字 2)。
  • 解题思路:充分运用集合的性质。
  • 时间复杂度:构造函数复杂度为 O ( N log ? U ) O(N \log U) O(NlogU) ,N为数组长度 U为数组中最大值
  • 空间复杂度:构造函数复杂度为 O ( N ) O(N) O(N)
class Solution:
    def countDistinctIntegers(self, A: List[int]) -> int:
        return len(set(A+[int(str(x)[::-1]) for x in A]))

?

6219. 反转之后的数字和(暴力就成 唔想太多!)

题目链接:6219. 反转之后的数字和
题目大意:给你一个 非负 整数 num 。如果存在某个 非负 整数 k 满足 k + reverse(k) = num ,则返回 true ;否则,返回 false 。
reverse(k) 表示 k 反转每个数位后得到的数字。

例如:

输入:num = 443
输出:true
解释:172 + 271 = 443 ,所以返回 true 。

输入:num = 63
输出:false
解释:63 不能表示为非负整数及其反转后数字之和,返回 false 。

输入:num = 181
输出:true
解释:140 + 041 = 181 ,所以返回 true 。注意,反转后的数字可能包含前导零。
  • 解题思路:不要想太多 直接暴力做就行。
  • 时间复杂度:构造函数复杂度为 O ( n log ? n ) O(n \log n) O(nlogn) ,n为num的数值
  • 空间复杂度:构造函数复杂度为 O ( N ) O(N) O(N)
class Solution:
    def sumOfNumberAndReverse(self, num: int) -> bool:
        return any(i+int(str(i)[::-1])==num for i in range(num+1))

?

6207. 统计定界子数组的数目(索引的关键)

题目链接:6207. 统计定界子数组的数目
题目大意:给你一个整数数组 nums 和两个整数 minK 以及 maxK 。
nums 的定界子数组是满足下述条件的一个子数组:

  • 子数组中的 最小值 等于 minK 。
  • 子数组中的 最大值 等于 maxK 。
    返回定界子数组的数目。子数组是数组中的一个连续部分。
输入:nums = [1,3,5,2,7,5], minK = 1, maxK = 5
输出:2
解释:定界子数组是 [1,3,5][1,3,5,2] 。

输入:nums = [1,1,1,1], minK = 1, maxK = 1
输出:10
解释:nums 的每个子数组都是一个定界子数组。共有 10 个子数组。
  • 解题思路:关键点在 数组索引上 通过连续子数组的限制 索引起到了非常巨大的作用,单纯使用暴力通过不了10**6左右的数据量。
  • 时间复杂度: O ( N ) O(N) O(N),N为数组长度
  • 空间复杂度: O ( 1 ) O(1) O(1)
class Solution:
    def countSubarrays(self, nums: List[int], minK: int, maxK: int) -> int: 
        # 这道题 下标是关键 原来我一直在想着 暴力 现在看来没必要哎!
        minI,maxI,newI = -1,-1,-1
        ans = 0
        for i,x in enumerate(nums):
            if x==minK: minI = i 
            if x==maxK: maxI = i 
            if x < minK or maxK < x: newI = i
            if minI != -1 and maxI != -1:
                ans += max(0,min(minI,maxI)-newI)
        return ans
        
        """
        # 暴力超时
        i,j = 0,0
        ans = 0
        n = len(nums)
        for i in range(n):
            maxN,minN = nums[i],nums[i]
            for j in range(i,n):
                if nums[j]<minN:
                    minN = nums[j]
                if nums[j]>maxN:
                    maxN = nums[j]
                if minN == minK and maxN == maxK:
                    ans += 1
        return ans
        """

总结

?? 努力 奋斗!通过3道,第一次达成,不过不是很如意,还有许多路要走,继续学习,不能没有节制的熬夜,身体扛不住,要学会松紧有度的调节自我,挺过这一段非常艰难的时间,You can control your mind and life!

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:59:49  更:2022-10-17 13:04:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:39:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码