前两篇文介绍了css3的过滤器filter用来实现图片的高斯模糊效果,还有js拖拽的功能。
要实现局部模糊就要把两者结合起来,计算位移就可以了。
实现原理
原理其实很简单,就是两张图的叠加。底部一张清晰的图,上面一个高斯模糊过的图,将高斯模糊的图当作上层元素的背景,利用背景定位使其只显示一部分,然后把这个高斯模糊的窗口放置在高清图的上层,背景图片的位置与下面的图片位置一致,这样看起来就像一张高清的图片打上了马赛克一样。讲起来不是很清楚,大家可以看一下代码。
@TOC
2020/6/03
之前分出了ts的分支,主要开始维护ts分支,master可能会更新的晚一点,如果需要自己启服务的话可以下载ts分支,有问题也可以回复,我可以协助一下。
2020/5/27
发现获取vkey的接口现在获取不到了,应该是官方换了请求方式,目前播放地址受到了影响,无法播放,修复时间待定。
2020/5/7
之前要使用api的话只能通过服务端请求,嗯嗯..想了想,现在支持跨域了。还是仅测试使用,服务器太渣渣。。经不起造。
2020/2/25
最近在做新的项目,叫小鱼干APP,可以在百度,vivo,小米,apple store 中下载,暂时没有时间来搞这个音乐api的东西了,不过服务没有停,如果想用来测试或者玩玩的还是可以用的。
2019/12/26
2019/12/24
接口仅供交流学习使用
因为之前使用网络上别人封装的音乐api现在无法使用,或者一些需要付费使用,当然这也无可厚非。
但对我而言,只需要简单的一些音乐api做一些东西。 感觉给钱有点亏。 就自己搞一个简单的符合我的需求的吧。
title: JavaScript:leetcode_16. 最接近的三数之和(排序+双指针)
date: 2020-06-24 16:27:44
categories: [‘Algorithm’,’每日一题’]
tags: Algorithm
1 | 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 |
首先这个题可以使用3重for循环来遍历求值,并记录最接近target的值,但是会超时。
nums[i], 剩下的值就是target-nums[i],我们需要在剩余数组元素中找到两个值nums[pb],nums[pc],最接近target-nums[i]nums,然后在每次遍历中,设定pb的初始值为 i + 1,pc的初始值为nums.length - 1。target_close_help = nums[i] + nums[pb] + nums[pc];,另外用target_close记录最接近target的值。nums[i]是确定的。所以只需要判断target_close_help 是否大于 target,如果大于则pc--,否则pb++;若target_close_help等于target则直接返回。nums从小到大排列,所以pc--代表nums[pc]的值会变小,target_close_help的值也会变小,这样才会慢慢接近target,反之亦然pb++是同样的道理。target_close_help 是否更接近target,若更接近则用target_close记录该次target_close_help1 | /** |
title: JavaScript:leetcode_739. 每日温度(栈)
date: 2020-06-11 11:27:28
categories: [‘Algorithm’,’每日一题’]
tags: Algorithm
1 | 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 |
暴力方法就不提了,直接循环判断即可。
i位的值,为j-i的差值。j为下一位比i处大的最小下标。T[i]和T[index[index.length-1]] (栈顶元素对应的T内值)。T[i] > T[index[index.length-1]] 将栈顶排出indexTop = index.pop(); 赋值T[indexTop] = i - indexTop 。i置入栈内。1 | /** |
title: JavaScript:leetcode_198. 打家劫舍(动态规划)
date: 2020-05-27 11:59:13
categories: [‘Algorithm’,’每日一题’]
tags: Algorithm
1 | 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 |
背景知识:CSS线性渐变,background-size
1 | background: linear-gradient(red, yellow, blue); |
to right代表渐变偏移角度,to right (相当于90deg)red,yellow,blue代表渐变色,表示从red - yellow - blue (相当于red 0% - yellow 50% - blue 100%)。 意思是从0%距离处为red,通过0%-50%的距离渐变到yellow,再通过50%-100%的距离渐变到blue。0) 等价于 linear-gradient(90deg, red 0%, yellow 50%, blue 50%) 因为当你的色标位置值设置为0时,会自动调整为前一个色标位置值。20%, yellow 20%, blue 100%); 代表从20%处颜色突然变化为yellow。(20%-20%之间没有渐变距离)20%, yellow 50%, blue 100%); 代表从20%-50%处都是黄色,然后从50%处开始渐变直到100%变化为blue上篇文章讲述了实现条纹效果所使用的CSS特性并实现了水平和垂直条纹,接下来我们来实现斜向条纹。
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。
示例:
输入:s = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的连续子数组。
进阶:
如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
### 解题思路一
1. 第一种方法,比较常规,符合我们的脑回路。
2. 遍历数组,求遍历过的和sum。
3. 当sum >= s时,依次减去sum前面的数字,并判断是否依旧符合sum >= s。
4. 直到sum >= s不成立,记录start--到end的长度。
5. 继续遍历数组的下一位,循环2-3步骤,比较之后取最小长度。
### 代码实现一
```javascript
/**
* @param {number} s
* @param {number[]} nums
* @return {number}
*/
var minSubArrayLen = function(s, nums) {
let sum = 0;
let start = 0;
let end = 0;
let min = nums.length + 1;
for(let i = 0; i < nums.length; i++) {
sum += nums[i];
if (sum >= s) {
end = i;
while(sum >= s) {
sum -= nums[start++];
}
start--;
sum += nums[start];
if (min > (end - start)) {
min = end - start + 1;
}
}
}
if (min > nums.length) {
return 0;
}
return min;
};
1 | /** |
1 / 10