算法复健-第七天 Math-Easy-删列造序 题面 给你由 n 个小写字母字符串组成的数组 strs,其中每个字符串长度相等。 这些字符串可以每个一行,排成一个网格。例如,strs = ["abc", "bce", "cae"] 可以排列为: abc bce cae 你需要找出并删除 不…
算法复健-第六天 昨天周末决定休息了一天 Math-Easy-增减字符串匹配 题面 由范围 [0,n] 内所有整数组成的 n + 1 个整数的排列序列可以表示为长度为 n 的字符串 s ,其中: 如果 perm[i] < perm[i + 1] ,那么 s[i] == 'I' 如果 perm[i] > perm[i …
算法复健-第五天 今天五道题,原因题太水了 Math-Easy-错误的集合 题面 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重复出现的整数,再找到丢失…
算法复健-第四天 Math-Easy-完美数 题面 对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。 给定一个 整数 n, 如果是完美数,返回 true;否则返回 false。 示例 1: 输入:num = 28 输出:true 解释:28 = 1 + 2 + 4 + 7 + 14 1, 2, 4, 7, …
算法复健-第三天 Math-Easy-丢失的数字 题面 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数 示例 1: 输入:nums = [3,0,1] 输出:2 解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 num…
算法复健-第二天 今天的两道题是兄弟题 , 所以一共三道题 (Easy题确实水 , 但是有些地方也蛮值得思考) Math-Easy-Excel表列名称+Excel表列序号 题面 - Excel表列名称 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。 例如: A -> 1 B -> 2 C ->…
算法复健-第一天 因为又报了某臭名昭著300元蓝桥杯,太久不写算法,虽然是暴力赛,但为了防止打水漂,还是每天写两道题复健一下 Math-Easy-二进制求和 题面 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1: 输入:a = "11", b = "1" 输出:"1…
高精度算法及其在 C++ 中的实现 高精度算法是一种用于处理大数运算的算法。由于计算机中的基本数据类型(如 int、long 等)所能表示的数值范围有限,当涉及到超出这个范围的数值运算时,就需要使用高精度算法。高精度算法在一些语言中(如Python,Java)已经被集成到语言里,这里为了学习思想,使用C++来自行实现该算法。 算法分析及难点 算法分…
基数排序是一种非比较类排序,非比较类排序效率较高,但对于所给数据有较高的要求,且需要比比较类排序更大的空间,所排序元素必须有进制. 算法原理 给定一个无序的数组 1.确定最大位数(bit): 遍历整个数组,找到其中的最大值,然后确定其位数,将位数记为bit。 2.创建桶和help数组: 准备10个桶(编号0到9)以及一个help数组,用于暂时存放排…
堆是一种非常重要的数据结构 , 堆排序是时间复杂度为O(nlogn)的排序算法 , 值得学习 堆结构 1.堆在逻辑上可以看做一颗完全二叉树 , 完全二叉树指满二叉树或从左向右依次渐满的二叉树 , 可以用一维数组来表示 , 数组下标为0的数为堆顶 ,1和2分别为它的左孩子和右孩子, 对于数组下标为n的节点,其父节点下标为(n - 1)/2 , 左孩子…