时间复杂度

Logic1012 小时前
c语言·数据结构·算法·二维数组·时间复杂度·动态内存分配·奇偶性
C语言/数据结构二维数组题解:找出行列O个数均为偶数的格子——奇偶性预处理+二次遍历小B最近迷上了艺术创作,他正在设计一个由字母O组成的图案。为了绘制这个图案,他需要在一张网格纸上标记出O的位置。但是小B发现,如果直接绘制所有的O,图案会显得杂乱无章。于是他想到一个办法:只绘制那些所在行和所在列中O的个数均为偶数的O,这样图案会更加平衡和和谐。
Logic1011 天前
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
C语言/数据结构位运算题解:异或XOR找出数轴移动中只出现一次的指令——只出现一次的数字小A在玩一个有趣的游戏,他站在数轴的原点(位置0)上,手里有一串移动指令。每个指令是一个整数,表示小A需要向左(负数)或向右(正数)移动的步数。但是小A发现,当他按顺序执行所有指令后,竟然神奇地回到了原点!原来,除了一个指令只出现了一次外,其他所有指令都恰好出现了两次(即每个指令在数组中出现两次)。现在需要你帮助小A找出那个只出现了一次的指令。
Logic1011 天前
c语言·数据结构·算法·数组·时间复杂度·贡献法·哈希记录
C语言/数据结构贡献法题解:数组权值——所有连续子数组中不同数字个数之和(O(n)解法)小A最近在研究数组的权值问题。他发现一个数组的权值定义为:所有连续子数组中,不同数字的个数之和。例如,数组 [1,2,1] 的连续子数组有 [1], [2], [1], [1,2], [2,1], [1,2,1],它们的权值分别是 1,1,1,2,2,2,总和为 1+1+1+2+2+2=9。
Logic1012 天前
c语言·数据结构·字符串·模拟·时间复杂度·空间复杂度·算法题
C语言/数据结构字符串题解:解压缩“字符+次数“格式——多位数字处理与字符串还原小明在整理历史文献时发现了一种古老的压缩字符串,其规则如下:将连续重复的字符用"字符+出现次数"的形式表示。例如,"aaabb"会被压缩成"a3b2"。现在小明需要编写一个解压缩程序,将这种格式的字符串恢复成原始形式。
Logic1012 天前
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
C语言/数据结构位运算题解:异或XOR找出糖葫芦派对中的“独一无二山楂果数量“——只出现一次的数字班级里举办了一场糖葫芦派对,每位同学都拿到了一串糖葫芦,每串糖葫芦上插着数量不同的山楂果(用整数表示)。已知班级中除了一个同学的糖葫芦串上的山楂果数量是独一无二的外,其他所有同学的糖葫芦串上的山楂果数量都恰好出现两次(即每个数量都恰好有两位同学相同)。班长小C想要快速找出那位拿着独一无二糖葫芦串的同学,以便为他颁发“最特别糖葫芦奖”。
Logic1013 天前
c语言·数据结构·算法·字符串·时间复杂度·空间复杂度·ascii
C语言/数据结构字符串题解:统计“chhc“子串权值总和——一次遍历模式匹配小红在玩一个字符串游戏,她发现当字符串中出现 "chhc" 这样的特殊子串时,这个子串会有一个权值。具体来说,对于字符串中的任意子串,如果该子串等于 "chhc",那么它的权值定义为子串中所有字符的ASCII码之和。现在小红有一个很长的字符串,她想知道所有 "chhc" 子串的权值总和是多少。
Logic1013 天前
c语言·数据结构·算法·动态规划·时间复杂度·回文串·最长回文子序列
C语言/数据结构动态规划题解:字符串变回文的最少操作次数——最长回文子序列(LPS)小明正在玩一个字符串拼图游戏,他有一个由小写字母组成的字符串。游戏规则允许他进行两种操作:1) 删除任意一个字符;2) 在任意位置插入任意一个小写字母。每次操作都会消耗1点能量。现在小明想要通过最少的操作次数,使得字符串变成回文串(即正着读和反着读都一样)。请你帮助小明计算最少需要多少次操作。
Logic1013 天前
c语言·数据结构·算法·组合数学·时间复杂度·排列·取模运算
C语言/数据结构组合数学题解:数字好排列计数——质数倍数分类与阶乘取模小明最近在玩一个数字排列游戏,他发现某些排列特别“好”——这些排列中,任意相邻的两个数字的乘积都不能被质数 k 整除。现在,小明想请你帮忙计算:给定数字集合 [1, 2, ..., n] 和质数 k,有多少种不同的排列方式是“好排列”?
Logic1015 天前
c语言·数据结构·算法·数组·位运算·时间复杂度·空间复杂度
C语言/数据结构位运算题解:异或XOR找出套碗游戏中的“幸运碗“——只出现一次的数字小明和小红在玩一个有趣的套碗游戏。桌上有 n 个碗排成一排,每个碗下面都藏着一张纸条,纸条上写着一个整数。游戏规则是:每次可以拿走两个相邻的碗,但必须满足这两个碗下的数字相同。当所有碗都被拿走后,如果剩下最后一个碗无法配对,那么这个碗就是“幸运碗”。
Logic1016 天前
c语言·数据结构·算法·贪心算法·时间复杂度·空间复杂度·欧几里得算法
C语言/数据结构欧几里得算法题解:长方形切割最大正方形——贪心划分计数小明是城市规划局的一名实习生,最近他接到了一个有趣的任务:将一个长方形园区划分成若干个小正方形区域,每个区域用于不同的功能(如花园、游乐场、停车场等)。园区的长和宽都是整数,小明发现,每次划分时,他需要从园区中切出一个尽可能大的正方形,然后对剩余部分重复此过程,直到整个园区都被划分为正方形。
Logic1017 天前
c语言·数据结构·动态规划·时间复杂度·数位dp·算法题·前导零处理
C语言/数据结构数位DP题解:平滑排列数字统计——区间内相邻位差不超过K的数字个数小明最近迷上了数字游戏,他发现了一个有趣的现象:对于给定的区间 [L, R],其中包含的数字可以组成许多不同的排列。但是,小明特别关注那些所有相邻数字的差的绝对值都不超过 K 的排列,他称之为“平滑排列”。现在,小明想知道在区间 [L, R] 内有多少个数字本身就是这种平滑排列(即该数字的十进制表示中,每一位数字构成的序列是一个平滑排列)。你能帮助小明计算这个数量吗?
Logic1018 天前
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
C语言/数据结构位运算题解:异或XOR找出优秀项目组中的“独特编号“——只出现一次的数字一年一度的优秀项目组初选评比开始了!每个项目组都有一个独特的编号,但有趣的是,除了一个项目组之外,所有其他项目组的编号都恰好出现了两次(因为每个项目组都有一个小分组)。班长小C需要快速找出那个独特的项目组编号,以便通知他们直接进入下一轮评选。
Logic1019 天前
c语言·数据结构·字符串·枚举·时间复杂度·算法题·kmp优化
C语言/数据结构字符串题解:最短循环节——找出能重复构成原串的最短基础子串小明在玩一个字符串拼接游戏时发现了一个有趣的现象:某些字符串可以通过重复一个较短的子串多次来构成。比如字符串 "abcabcabc" 可以由子串 "abc" 重复3次得到。这个较短的子串被称为字符串的"循环节"或"基础重复单元"。
Logic10110 天前
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
C语言/数据结构位运算题解:异或XOR找出英雄队伍中的“独特战斗力“——只出现一次的数字小强最近沉迷于一款英雄对战游戏,他需要组建一支英雄队伍来通关副本。每个英雄都有一个独特的战斗力数值,但游戏规则特殊:除了一个英雄的战斗力数值只出现一次外,其余每个战斗力数值都恰好出现两次(即有两个英雄拥有相同的战斗力)。这个独特的英雄拥有特殊的技能,能够帮助队伍轻松通关。
Logic10111 天前
c语言·数据结构·动态规划·时间复杂度·空间复杂度·算法题·爬楼梯
C语言/数据结构动态规划题解:爬楼梯(含坏台阶)——避开障碍物的路径计数小明正在爬一个有 n 级台阶的楼梯,但是他的体力有限,每次只能爬 1 级或者 2 级台阶。更特别的是,楼梯的某些台阶是坏的,小明不能踩上去。小明的目标是爬到楼梯的顶部(第 n 级台阶),但必须避开所有坏掉的台阶。现在,请你帮助小明计算,在避开所有坏台阶的情况下,他有多少种不同的方式可以爬到楼梯顶部。
Logic10112 天前
c语言·数据结构·数组·排序·时间复杂度·算法题·负数处理
C语言/数据结构排序题解:三个数的最大乘积——排序后比较两种候选情况在一次数学竞赛中,小C和小红被要求从一个整数数组中找出三个不同的数字,使得它们的乘积最大。但是有一个规则:这三个数字必须来自数组中的不同位置,且不能是同一个数字重复使用(即使数组中有重复数字,每个位置也只能用一次)。小C和小红需要合作设计一个高效的算法来解决这个问题,以便在竞赛中胜出。
写后端的胖头鱼12 天前
java·数据结构·算法·时间复杂度·空间复杂度
时间复杂度 & 空间复杂度时间复杂度评估算法运行需要多少时间;空间复杂度评估算法运行需要占用多少内存。两者都只关心【数据规模变大时】的增长趋势,不统计精确耗时 / 内存大小。
Logic10112 天前
c语言·数据结构·贪心算法·字符串·时间复杂度·频率统计·算法题
C语言/数据结构贪心算法题解:字符串趋同——逐位统计最高频率求最小修改代价小明的学校正在举办一场“字符串趋同”游戏,每个班级需要将自己的字符串通过最少次数的字符修改操作变得完全相同。每位同学初始有一个由小写字母组成的字符串,每次操作可以选择任意一位同学,修改其字符串中的任意一个字符(可以改为任意小写字母)。但是每次修改的代价为1,不同位置的修改代价独立计算。
Logic10115 天前
c语言·数据结构·字符串·时间复杂度·计数排序·算法题·ascii
C语言/数据结构字符串题解:按字符类型重排(数字→字母→符号)——三趟扫描稳定分区小明在整理班级的图书角时,发现每本书的封面上都印有一个字符(可能是字母、数字或符号)。为了便于分类,老师希望将这些字符按照类型重新排序:先排列所有数字字符('0'-'9'),然后是所有字母字符('a'-'z', 'A'-'Z'),最后是其他符号字符。同时,要求在同类型字符中保持它们在原始字符串中的相对顺序不变。
Logic10116 天前
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
C语言/数据结构位运算题解:异或XOR找出学习计划中的“独特学习时间“——只出现一次的数字小明和小红是两位热爱学习的同学,他们决定利用暑假时间学习新技能。他们列出了 n 个技能,每个技能有一个学习时间(单位:小时)。有趣的是,除了一个技能外,所有技能的学习时间都恰好出现了两次,这意味着有两个技能需要相同的时间完成。只有一个技能的学习时间是独一无二的。