随笔分类 - 技巧
摘要:原生的渐变方法 在SVG中提供的原生渐变方法有两种,分别为线性渐变linearGradient和径向渐变radialGradient。我们以一个稍微复杂的路径来作为模板,为其添加两种渐变效果: <svg width="800" height="300"> <defs> <linearGradient
阅读全文
摘要:LeetCode 三数之和 — 改进解法 题目:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1
阅读全文
摘要:最近偶然碰到的一道题,题目本身解法不难,但属于挺典型的数组问题处理的一种解法。 该题是利用前缀和的技巧判断子数组合法性的。(另外一些常用于判断数组合法性的典型方法有双指针法即尺取,二分枚举区间等。) 题目: 给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组。 示例 1: 示例
阅读全文
摘要:题目:有2n+1个数,其中有n对相同的,还有一个落单的与其他都不相同,找出这个数;要求时间复杂度O(n),空间复杂度O(1)。 主流解法:将这2n+1个数全部异或起来,相同的数会抵消掉(与异或的顺序无关),最后得出的结果就是落单的数。 我的解法:一开始扫一遍过去找出数组中的中位数(题目条件可知一定存
阅读全文
摘要:一句话题意:求斐波那契数列第n项,如果位数大于8,则只显示最前4位和最后4位。 题解:对于最后4位,套斐波那契数列的矩阵快速幂模板,MOD为10000即可。 而对于最后4位: 已知斐波那契数列通项公式f(n)=(1/√5) * [((1+√5)/2)^n-((1-√5)/2)^n]; 取对数log1
阅读全文
摘要:一句话题意:让你求n^n的最左位的数字是多少。 题解:n最大可以为1000000000,那n^n就是超大的数了,,对于求关于n次方、斐波那契额和阶乘的位数这类的问题,首先就会想到取对数什么的(套路...);那么,看这题,对于m=n^n,有log10(m)=n*log10(n); 假设log10(m)
阅读全文
摘要:题意:给处编号从1~n这n个节点的父节点,得到含有若干棵树的森林;然后再给出k个操作,分两种'C x'是将节点x与其父节点所连接的支剪短;'Q a b'是询问a和b是否在同一棵树中。 题解:一开始拿到题目绞尽脑汁咋都想不到哇该怎么做在线查询,,,除了用暴力外一脸懵逼(不过确实能用暴力水过...=_=
阅读全文
摘要:感觉自己做有关区间的题目方面的思维异常的差...有时简单题都搞半天还完全没思路,,然后别人提示下立马就明白了。。。=_= 题意:给一个含有n个元素的数组和k,问存在多少个区间的和值为k的次方数。 题解:先处理出前缀和sum[i]。然后扫一遍这个前缀和数组:对于每个sum[i],从k的0次方开始枚举,
阅读全文
摘要:题目大意 是给你一个字符串,问其中有多少个字串代表的数字能被64整除(注意不能有前导0 且 单独的'0'也是可以的)。 这题里的64是有些特殊的,,,因为1000000刚好能够整除64,这里就是突破口。 先预处理出字符串中不为0的数字的前缀和,,然后嵌套两个循环,将下标i从0扫到n-6,每次再暴搜i
阅读全文