第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-201 大等于n的最小完全平方数 ---- 目录 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-201 大等于n的最小完全平方数...前言 大等于n的最小完全平方数 C语言 C++语言 Java语言 Python语言 总结 第六届——第十三届省赛题解 第六届——第十二届国赛题解 ---- 前言 这段时间我会把蓝桥杯官网上的所有非...---- 大等于n的最小完全平方数 资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 输出大等于...n的最小的完全平方数。 ...若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数 Tips:注意数据范围 输入格式 一个整数n 输出格式 大等于n的最小的完全平方数 样例输入 71711
2021-05-20:给定一个数组arr, 返回如果排序之后,相邻两数的最大差值。要求:时间复杂度O(N) 。 福大大 答案2021-05-20: 假设答案法。...N个数,根据最大值和最小值的范围等分成N+1个桶。每个桶只需要存当前桶的最大值和最小值。根据鸽笼原理,必然存在空桶。最后只需要遍历求【右桶min-左桶max】,返回最大值。...最终答案可能来自相邻桶(这个很难想到),也可能来自跨桶(空桶的左侧和右侧就是跨桶),但是一定不会来自同一个桶内部的情况。另外,这道题是以空间复杂度换取时间复杂度 代码用golang编写。...:= make([]int, N+1) // maxs[i] i号桶收集的所有数字的最大值 mins := make([]int, N+1) // mins[i] i号桶收集的所有数字的最小值...) lastMax = maxs[i] } } return res } // 如果当前的数是num,整个范围是min~max,分成了len +
你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。...你必须设计并实现时间复杂度为 O(log n) 的算法。...+ 1; return left; } }; 时间复杂度: O(log n) 空间复杂度:O(1) 4. x 的平方根 题目链接:69. x 的平方根 题目描述: 给定一个非负整数...: O(log n) 空间复杂度:O(1) 7.搜索旋转排序数组中的最小值 题目链接:153....请找出旋转后数组中的最小值。 你必须设计一个时间复杂度为 O(log n) 的算法解决此问题。
K的子数组有序数组的平方爱吃香蕉的珂珂救生艇二分法(这里只有链接,具体可以去看二分的题)模板1二分查找x 的平方根猜数字大小排列硬币搜索旋转排序数组 模板2第一个错误的版本寻找峰值寻找旋转排序数组中的最小值寻找旋转排序数组中的最小值...II 模板3在排序数组中查找元素的第一个和最后一个位置找到 K 个最接近的元素 其他Pow(x, n)有效的完全平方数寻找比目标字母大的最小字母两个数组的交集两个数组的交集 II两数之和 II - 输入有序数组寻找重复数...快乐数分析这里盲猜是用迭代的写法来求,因为没次按要求改造一个 ret,如果不符合成功或者失败要求,就会继续迭代下去因为是不断按十进制位取平方求和,所以截止条件应该是符合要求,得到的和 sum === 1...最接近的三数之和分析暴力解法,直接固定左右两个节点i,j,然后设置第三个指针 k 在两个指针之间遍历求和,找出最接近 target 的值i 遍历一次nums,j 和 k 每固定一次加起来遍历一次 nums...然后 unshift 到数组中即可时间复杂度 O(n), 空间复杂度 O(n)var sortedSquares = function(nums) { let l = 0,r = nums.length
对于该问题假设我们已经知道了一个数记做target,target的上界为m * n,下界为1,只需统计乘法表中不大于target元素的数目与k相比即可。...随着target值的增长得到的元素数目亦是增长,因此可以使用二分查找的方式。该问题就可以转化为找到元素数目大于等于k的最小target。...给定target统计乘法表中不大于target的元素数目,从乘法表的右上角开始,若当前值大于target,左移;否则加上以当前位置结尾的横向序列长度并下移。...int left = 1; // 找到满足条件的最小的 这是由于某个乘法表中不存在的数亦会使得count = k while(left n)),统计的时间复杂度为O(m + n)总体时间复杂度为O((m + n )* log(m * n));
给定正整数 ,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 。 你需要让组成和的完全平方数的个数最少。...给你一个整数 ,返回和为 的完全平方数的「最少数量」。 「完全平方数」是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。...(朴素解法) 首先「完全平方数」有无限个,但我们要凑成的数字是给定的。...; } } 时间复杂度:预处理出所有可能用到的数字复杂度为 ,共有 个状态需要转移,每个状态转移最多遍历 次,因此转移完所有状态复杂度为 。...} } 时间复杂度:预处理出所有可能用到的数字复杂度为 ,共有 个状态需要转移,复杂度为 。
双周赛 40 将句子排序 增长的内存泄露 旋转盒子 向下取整数对和 单周赛 241 找出所有子集的异或总和再求和 构成交替字符串需要的最小交换次数 找出和为指定值的下标对 恰有 根木棍可以看到的排列数目...中的数字对答案的贡献为 ,区间 中的数字对答案的贡献为 ,以此类推 我们可以用一个类似于筛法一样的操作计算答案,时间复杂度在 级别 #define LL long long class...然后计算异或和,最后求和,时间复杂度 class Solution { public: int subsetXORSum(vector& nums) { int n...给定一个 串 ,现在需要把它变成 交替的形式,计算最小的交换数,如果无法构成该形式,返回 例如, 变成 ,最小交换次数为 例如, 已经是 交替的形式,最小交换次数为...总的时间复杂度为 恰有 根木棍可以看到的排列数目 给定 根长度各不相同的木棍,长度为 到 的整数 现在把 根木棍排成一排,并满足 从左侧恰好可以看到 根木棍,从左侧可以看到木棍的前提是
常见的时间复杂度包括:常数时间复杂度 O(1):无论问题规模多大,算法的执行时间都不会随之增长。线性时间复杂度 O(n):算法的执行时间与问题规模呈线性关系。...对数时间复杂度 O(log n):算法的执行时间与问题规模的对数呈线性关系。平方时间复杂度 O(n^2):算法的执行时间与问题规模的平方呈线性关系。...对数空间复杂度 O(log n):算法的额外空间与问题规模的对数呈线性关系。平方空间复杂度 O(n^2):算法的额外空间与问题规模的平方呈线性关系。...通常情况下,我们希望选择时间复杂度低且空间复杂度较小的算法。常见的对算法执行所需时间的度量:O(1)n)n)n)n²)n³)n!)...上述的时间复杂度,经常考到,需要注意的是,时间复杂度是一个大概的规模表示,一般以循环次数表示,O(n)说明执行时间是n的正比,另外,log对数的时间复杂度一般在查找二叉树的算法中出现。
环形链表 II时间复杂度 O(N)var findDuplicate = function (nums) { let slow = fast = 0 // 初始节点 while(fast &...快乐数分析这里盲猜是用迭代的写法来求,因为没次按要求改造一个 ret,如果不符合成功或者失败要求,就会继续迭代下去因为是不断按十进制位取平方求和,所以截止条件应该是符合要求,得到的和 sum === 1...最接近的三数之和分析暴力解法,直接固定左右两个节点i,j,然后设置第三个指针 k 在两个指针之间遍历求和,找出最接近 target 的值i 遍历一次nums,j 和 k 每固定一次加起来遍历一次 nums...有序数组的平方分析分发左右指针l,r, 然后用一个额外的数组来存储平方后的数组即可由于这是一个排好序的增序列,会存在负数,但是值的平方最大值就在数组的两侧,所以每次比较两侧的值,就能获取到相应的最大值,...然后 unshift 到数组中即可时间复杂度 O(n), 空间复杂度 O(n)var sortedSquares = function(nums) { let l = 0,r = nums.length
centroids = np.mat(np.zeros((k, dim))) for j in range(dim): # 随机生成每一维中最大值和最小值之间的随机数...二分 K-Means 聚类算法伪代码: 将所有点看成一个簇 当簇数目小于 k 时,对于每一个簇 计算总误差 在给定的簇上面进行 KMeans 聚类(k=2) 计算将该簇一分为二之后的总误差 选择使得误差最小的那个簇进行划分操作...= i)[0], 1]) # 将未参与二分kMeans分配结果中的平方和的距离进行求和 if (sse_split + sse_not_split) < lowest_SSE...主要需要调参的参数仅仅是簇数k。 K-Means的主要缺点有: K值的选取不好把握(实际中K值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。...K-Means算法或K-Means++算法) 时间复杂度高O(nkt),其中n是对象总数,k是簇数,t是迭代次数。
存在三种情况: 平方小于目标数 往高走 平方大于目标数 往低走 平方和恰好等于目标数 跳出循环 //采用二分模板 mid划到了左区间 long left=1; long right=x;...找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。...给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。...只能使用额外的 O(1) 的空间。 时间复杂度小于 O(n^2) 。 数组中只有一个重复的数字,但它可能不止重复出现一次。...说明: 你的解法应该是 O(logN) 时间复杂度的。
完全平方数 (medium)给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。...表示i的完全平方和的最少数量,dp[i - j * j] + 1表示减去一个完全平方数j的完全平方之后的数量加1就等于dp[i],只要在dp[i], dp[i - j * j] + 1中寻找一个较少的就是最后...三角形最小路径和(medium)给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。...最小路径和 (medium)给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。...复杂度:时间复杂度O(mn),m、n分别是矩阵的长和宽。
完全平方数 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。...示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9 首先,明确dp,然后找dp的转移方程。 这里,dp[i]:表示完全平方数和为i的 最小个数。...dp[i] = min(dp(i),dp[i-k] + 1) ,k 指的是平方和的数 「问题就转为了求n的最大平方和的序列。」...推论:满足四数平方和定理的数n(四个整数的情况),必定满足 n=4^a(8b+7) 这个自己是不知道的,大家想深入:https://leetcode-cn.com/problems/perfect-squares...说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。
,通过循环一个数来获取它的每一位数字,进而实现每个数平方后求和!...n = n // 10 return sums 【分析】 时间复杂度 空间复杂度 O(mn) O(n) 哈希查找O(1),循环每个数长度一次,假设递归了m轮,那么最终的时间复杂度为O(...,map…),则是对list[1,9]中每个数平方后,返回一个list[1,81],最后通过sum完成list求和,即82,也就是完成了一个数的每个位上的数的平方在求和的功能,也就是上面两个解法循环的替代...那么现在优化的结果出来了,就是将上述 sums = self.con_sum(n) 去掉,然后改成map返回的list求和! 时间与空间复杂度同上!...【实现】 直接循环判断求和等不等于4就行,时间复杂度同上,空间复杂度O(1)。con_sum可以替换!
水仙花数是指一个三位数,它的每个数位上的数字的立方和等于它本身。...:" + factorial); } } } 题目九、找出 1 - 25 中是完全平方数的数 要求:在 1 到 25 的整数中,找出所有是完全平方数的数。...完美数是一个正整数,它等于除自身以外的所有正因数之和。...n) { System.out.println(n); } } } } 题目十四:找出数组中的最大值和最小值 题目描述:给定一个整数数组...一般情况下,对于统计字符串中字符个数这个简单任务,几种方法的时间消耗差别不大,但如果非要比较的话: 普通遍历(方法一):这是一种非常直接的方法,时间复杂度为O(n),其中n是字符串的长度。
本文主要内容是通过001问题来初步了解数组求和的两种常用方法。 001-Two Sum 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。...哈希 (1) O(n) (2) 考虑暴力循环中我们做的事情,我们先挑出一个值a,然后看数组中其他值是否能与值a相加等于目标,也可以说成看数组中是否存在一个值等于目标值减去值a。...基于哈希表的特性,查找的时间复杂度为O(1),总时间复杂度就变为了一次for循环O(n) 回到本道题中: (1) 由于需要返回对应的索引,所以需要使用HashMap(在python中是dict),key...我们可以将最小值与最大值相加与目标值进行比较,如果两数之和大于目标值,我们就让最大值小一点(也就是读取第二个最大值),相反如果小于,则让最小值大一点(读取第二个最小值)。...,下一文将引申这两种方法在三个数求和中的应用。
最小路径和 (medium)给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。...复杂度:时间复杂度O(mn),m、n分别是矩阵的长和宽。...,枚举i和j,遍历所有区间,i-j能获得的最大数量的金币等于 戳破当前的气球获得的金钱加上之前i-k、k-j区间中已经获得的金币复杂度:时间复杂度O(n^3),n是气球的数量,三层遍历。...完全平方数 (medium)给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。...表示i的完全平方和的最少数量,dp[i - j * j] + 1表示减去一个完全平方数j的完全平方之后的数量加1就等于dp[i],只要在dp[i], dp[i - j * j] + 1中寻找一个较少的就是最后
对于非法输入也应有提示)、可读性、健壮性、高效性(时间 + 空间) 2.3 时间复杂度 一个算法的执行总时间应该等于每条语句执行时间之和,假定执行时间都为单位 1,那么则等于语句总数,同时我们只考虑耗时长的操作语句...大 O 表示法: 给定问题规模 n 以及关于 n 的函数 f(n),其中,f(n) 代表基本语句执行次数。...那么,时间复杂度 T(n) = O(f(n)),它表示随问题规模 n 的增大,算法执行时间的增长率和 f(n) 的增长率相同。...大 O 阶推导(分析时间复杂度): 找出语句频度最高的基本语句; 基于该语句的频度推导出对应的 f(n); 取 f(n) 的数量级得到最终的 f(n)。这意味着允许我们忽略低次幂和最高次幂的系数。...经过大 O 阶推导,可以得到常数阶、平方阶、对数阶等。需要注意的是,当算法可以在常数时间内完成时(与问题规模无关),其时间复杂度依然是常数阶 O(1)。
如果中间元素等于目标值,则返回该索引;若中间元素小于目标值,则在右侧继续搜索;若中间元素大于目标值,则在左侧继续搜索。时间复杂度为O(log n)。...时间复杂度为O(log n),适合处理排序数组。 步骤: 查找第一个位置: 使用二分查找,找到目标值的第一个位置。...x的平方根。...最小值通常出现在这两个有序子数组的交界处。可以使用二分查找,比较中点和右端点的值,若中点大于右端点,最小值在右侧;若中点小于右端点,最小值在左侧。...left + 1 : left; } }; 此外这题还可以用4种O(n)时间复杂度方法去求 第1种:直接遍历寻找,第2种:哈希,第3种:异或,第4种:等差求和。
领取专属 10元无门槛券
手把手带您无忧上云